From 542d6a07fae8154616b0c766d42314829a878fec Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 27 Aug 2026 13:08:13 +0000 Subject: [PATCH] payload: refresh bundled known-good fallbacks [skip ci] --- Payload/Fallback/AuctionQueryThrottle.dll | Bin 0 -> 92672 bytes .../Sound/Spells/Tradeskills/FishBite.wav | Bin 0 -> 44596 bytes .../Sound/Spells/Fizzle/FizzleFireA.wav | Bin 0 -> 482 bytes .../Sound/Spells/Fizzle/FizzleFrostA.wav | Bin 0 -> 482 bytes .../Sound/Spells/Fizzle/FizzleHolyA.wav | Bin 0 -> 482 bytes .../Sound/Spells/Fizzle/FizzleNatureA.wav | Bin 0 -> 482 bytes .../Sound/Spells/Fizzle/FizzleShadowA.wav | Bin 0 -> 482 bytes .../Sound/interface/iUiInterfaceButtonA.wav | Bin 0 -> 482 bytes .../Sound/interface/uChatScrollButton.wav | Bin 0 -> 482 bytes .../Sound/interface/uEscapeScreenClose.wav | Bin 0 -> 482 bytes .../Sound/interface/uEscapeScreenOpen.wav | Bin 0 -> 482 bytes .../Creature/DoomGuardVO/DOOM_DISMISS01.wav | Bin 0 -> 482 bytes .../Creature/DoomGuardVO/DOOM_DISMISS02.wav | Bin 0 -> 482 bytes .../Creature/DoomGuardVO/DOOM_DISMISS03.wav | Bin 0 -> 482 bytes .../Creature/DoomGuardVO/DOOM_DISMISS04.wav | Bin 0 -> 482 bytes .../Sound/Creature/DoomGuardVO/DOOM_FUNNY.wav | Bin 0 -> 482 bytes .../Creature/DoomGuardVO/DOOM_KILL01.wav | Bin 0 -> 482 bytes .../Creature/DoomGuardVO/DOOM_KILL02.wav | Bin 0 -> 482 bytes .../Creature/DoomGuardVO/DOOM_KILL03.wav | Bin 0 -> 482 bytes .../Creature/DoomGuardVO/DOOM_KILL04.wav | Bin 0 -> 482 bytes .../Creature/DoomGuardVO/DOOM_ORDER01.wav | Bin 0 -> 482 bytes .../Creature/DoomGuardVO/DOOM_ORDER02.wav | Bin 0 -> 482 bytes .../Creature/DoomGuardVO/DOOM_ORDER03.wav | Bin 0 -> 482 bytes .../Creature/DoomGuardVO/DOOM_ORDER05.wav | Bin 0 -> 482 bytes .../Creature/DoomGuardVO/DOOM_SUMMON01.wav | Bin 0 -> 482 bytes .../Creature/DoomGuardVO/DOOM_SUMMON02.wav | Bin 0 -> 482 bytes .../Creature/DoomGuardVO/DOOM_SUMMON03.wav | Bin 0 -> 482 bytes .../Creature/DoomGuardVO/DOOM_SUMMON04.wav | Bin 0 -> 482 bytes .../Sound/Creature/ImpVO/IMP_DISMISS02.wav | Bin 0 -> 482 bytes .../Sound/Creature/ImpVO/IMP_DISMISS03.wav | Bin 0 -> 482 bytes .../Sound/Creature/ImpVO/IMP_DISMISS04.wav | Bin 0 -> 482 bytes .../Sound/Creature/ImpVO/IMP_DISMISS05.wav | Bin 0 -> 482 bytes .../Data/Sound/Creature/ImpVO/IMP_FUNNY.wav | Bin 0 -> 482 bytes .../Data/Sound/Creature/ImpVO/IMP_KILL01.wav | Bin 0 -> 482 bytes .../Data/Sound/Creature/ImpVO/IMP_KILL02.wav | Bin 0 -> 482 bytes .../Data/Sound/Creature/ImpVO/IMP_KILL03.wav | Bin 0 -> 482 bytes .../Data/Sound/Creature/ImpVO/IMP_KILL04.wav | Bin 0 -> 482 bytes .../Data/Sound/Creature/ImpVO/IMP_ORDER01.wav | Bin 0 -> 482 bytes .../Data/Sound/Creature/ImpVO/IMP_ORDER02.wav | Bin 0 -> 482 bytes .../Data/Sound/Creature/ImpVO/IMP_ORDER03.wav | Bin 0 -> 482 bytes .../Data/Sound/Creature/ImpVO/IMP_ORDER04.wav | Bin 0 -> 482 bytes .../SuccubusVO/SUCCUBUS_DISMISS01.wav | Bin 0 -> 482 bytes .../SuccubusVO/SUCCUBUS_DISMISS02.wav | Bin 0 -> 482 bytes .../SuccubusVO/SUCCUBUS_DISMISS03.wav | Bin 0 -> 482 bytes .../SuccubusVO/SUCCUBUS_DISMISS04.wav | Bin 0 -> 482 bytes .../Creature/SuccubusVO/SUCCUBUS_FUNNY.wav | Bin 0 -> 482 bytes .../Creature/SuccubusVO/SUCCUBUS_KILL01.wav | Bin 0 -> 482 bytes .../Creature/SuccubusVO/SUCCUBUS_KILL02.wav | Bin 0 -> 482 bytes .../Creature/SuccubusVO/SUCCUBUS_KILL03.wav | Bin 0 -> 482 bytes .../Creature/SuccubusVO/SUCCUBUS_KILL04.wav | Bin 0 -> 482 bytes .../Creature/SuccubusVO/SUCCUBUS_ORDER01.wav | Bin 0 -> 482 bytes .../Creature/SuccubusVO/SUCCUBUS_ORDER02.wav | Bin 0 -> 482 bytes .../Creature/SuccubusVO/SUCCUBUS_ORDER03.wav | Bin 0 -> 482 bytes .../Creature/SuccubusVO/SUCCUBUS_ORDER05.wav | Bin 0 -> 482 bytes .../Creature/SuccubusVO/SUCCUBUS_SUMMON01.wav | Bin 0 -> 482 bytes .../Creature/SuccubusVO/SUCCUBUS_SUMMON02.wav | Bin 0 -> 482 bytes .../Creature/SuccubusVO/SUCCUBUS_SUMMON03.wav | Bin 0 -> 482 bytes .../Creature/SuccubusVO/SUCCUBUS_SUMMON04.wav | Bin 0 -> 482 bytes .../Creature/VoidWalkerVO/VOID_DISMISS01.wav | Bin 0 -> 482 bytes .../Creature/VoidWalkerVO/VOID_DISMISS02.wav | Bin 0 -> 482 bytes .../Creature/VoidWalkerVO/VOID_DISMISS03.wav | Bin 0 -> 482 bytes .../Creature/VoidWalkerVO/VOID_DISMISS04.wav | Bin 0 -> 482 bytes .../Creature/VoidWalkerVO/VOID_FUNNY.wav | Bin 0 -> 482 bytes .../Creature/VoidWalkerVO/VOID_KILL01.wav | Bin 0 -> 482 bytes .../Creature/VoidWalkerVO/VOID_KILL02.wav | Bin 0 -> 482 bytes .../Creature/VoidWalkerVO/VOID_KILL03.wav | Bin 0 -> 482 bytes .../Creature/VoidWalkerVO/VOID_KILL04.wav | Bin 0 -> 482 bytes .../Creature/VoidWalkerVO/VOID_ORDER01.wav | Bin 0 -> 482 bytes .../Creature/VoidWalkerVO/VOID_ORDER02.wav | Bin 0 -> 482 bytes .../Creature/VoidWalkerVO/VOID_ORDER03.wav | Bin 0 -> 482 bytes .../Creature/VoidWalkerVO/VOID_ORDER05.wav | Bin 0 -> 482 bytes .../Creature/VoidWalkerVO/VOID_SUMMON01.wav | Bin 0 -> 482 bytes .../Creature/VoidWalkerVO/VOID_SUMMON02.wav | Bin 0 -> 482 bytes .../Creature/VoidWalkerVO/VOID_SUMMON03.wav | Bin 0 -> 482 bytes .../Creature/VoidWalkerVO/VOID_SUMMON04.wav | Bin 0 -> 482 bytes Payload/Fallback/ClassicAPI.dll | Bin 0 -> 1145856 bytes Payload/Fallback/Interact/Addon/Bindings.xml | 8 + Payload/Fallback/Interact/Addon/Interact.lua | 21 + Payload/Fallback/Interact/Addon/Interact.toc | 9 + Payload/Fallback/Interact/Interact.dll | Bin 0 -> 55808 bytes .../VMMFix_preferred_monitor.txt | 1 + .../VanillaMultiMonitorFix.dll | Bin 0 -> 28160 bytes Payload/Fallback/versions.json | 530 ++ .../Addons/UnitXP_SP3_Addon/README.md | 2 - .../UnitXP_SP3_Addon/UnitXP_SP3_Addon.lua | 13 +- .../Addons/nampowersettings/Localization.lua | 742 +-- .../nampowersettings/NampowerSettings.toc | 54 +- .../Addons/nampowersettings/README.md | 12 - .../Addons/nampowersettings/helper.lua | 1904 +++--- .../Interface/Addons/nampowersettings/img.png | Bin 18926 -> 0 bytes .../libs/AceAddon-2.0/AceAddon-2.0.lua | 2258 +++---- .../libs/AceConsole-2.0/AceConsole-2.0.lua | 3840 ++++++------ .../libs/AceDB-2.0/AceDB-2.0.lua | 3078 ++++----- .../libs/AceDebug-2.0/AceDebug-2.0.lua | 490 +- .../libs/AceEvent-2.0/AceEvent-2.0.lua | 1946 +++--- .../libs/AceHook-2.1/AceHook-2.1.lua | 1138 ++-- .../libs/AceLibrary/AceLibrary.lua | 1514 ++--- .../libs/AceLocale-2.2/AceLocale-2.2.lua | 1076 ++-- .../AceModuleCore-2.0/AceModuleCore-2.0.lua | 924 +-- .../libs/AceOO-2.0/AceOO-2.0.lua | 2012 +++--- .../libs/Dewdrop/Dewdrop-2.0.lua | 5204 +++++++-------- .../libs/FuBarPlugin/FuBarPlugin-2.0.lua | 2960 ++++----- .../libs/Tablet/Tablet-2.0.lua | 5568 ++++++++--------- .../Addons/nampowersettings/settings.lua | 2592 ++++---- Payload/UnitXP_SP3.dll | Bin 202240 -> 185344 bytes Payload/nampower.dll | Bin 829952 -> 1058816 bytes vanilla-tweaks.exe | Bin 5920384 -> 5927433 bytes 107 files changed, 19226 insertions(+), 18670 deletions(-) create mode 100644 Payload/Fallback/AuctionQueryThrottle.dll create mode 100644 Payload/Fallback/Audio/FishPing/Sound/Spells/Tradeskills/FishBite.wav create mode 100644 Payload/Fallback/Audio/NoErrorSounds/Sound/Spells/Fizzle/FizzleFireA.wav create mode 100644 Payload/Fallback/Audio/NoErrorSounds/Sound/Spells/Fizzle/FizzleFrostA.wav create mode 100644 Payload/Fallback/Audio/NoErrorSounds/Sound/Spells/Fizzle/FizzleHolyA.wav create mode 100644 Payload/Fallback/Audio/NoErrorSounds/Sound/Spells/Fizzle/FizzleNatureA.wav create mode 100644 Payload/Fallback/Audio/NoErrorSounds/Sound/Spells/Fizzle/FizzleShadowA.wav create mode 100644 Payload/Fallback/Audio/NoErrorSounds/Sound/interface/iUiInterfaceButtonA.wav create mode 100644 Payload/Fallback/Audio/NoErrorSounds/Sound/interface/uChatScrollButton.wav create mode 100644 Payload/Fallback/Audio/NoErrorSounds/Sound/interface/uEscapeScreenClose.wav create mode 100644 Payload/Fallback/Audio/NoErrorSounds/Sound/interface/uEscapeScreenOpen.wav create mode 100644 Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/DoomGuardVO/DOOM_DISMISS01.wav create mode 100644 Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/DoomGuardVO/DOOM_DISMISS02.wav create mode 100644 Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/DoomGuardVO/DOOM_DISMISS03.wav create mode 100644 Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/DoomGuardVO/DOOM_DISMISS04.wav create mode 100644 Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/DoomGuardVO/DOOM_FUNNY.wav create mode 100644 Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/DoomGuardVO/DOOM_KILL01.wav create mode 100644 Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/DoomGuardVO/DOOM_KILL02.wav create mode 100644 Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/DoomGuardVO/DOOM_KILL03.wav create mode 100644 Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/DoomGuardVO/DOOM_KILL04.wav create mode 100644 Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/DoomGuardVO/DOOM_ORDER01.wav create mode 100644 Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/DoomGuardVO/DOOM_ORDER02.wav create mode 100644 Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/DoomGuardVO/DOOM_ORDER03.wav create mode 100644 Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/DoomGuardVO/DOOM_ORDER05.wav create mode 100644 Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/DoomGuardVO/DOOM_SUMMON01.wav create mode 100644 Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/DoomGuardVO/DOOM_SUMMON02.wav create mode 100644 Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/DoomGuardVO/DOOM_SUMMON03.wav create mode 100644 Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/DoomGuardVO/DOOM_SUMMON04.wav create mode 100644 Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/ImpVO/IMP_DISMISS02.wav create mode 100644 Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/ImpVO/IMP_DISMISS03.wav create mode 100644 Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/ImpVO/IMP_DISMISS04.wav create mode 100644 Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/ImpVO/IMP_DISMISS05.wav create mode 100644 Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/ImpVO/IMP_FUNNY.wav create mode 100644 Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/ImpVO/IMP_KILL01.wav create mode 100644 Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/ImpVO/IMP_KILL02.wav create mode 100644 Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/ImpVO/IMP_KILL03.wav create mode 100644 Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/ImpVO/IMP_KILL04.wav create mode 100644 Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/ImpVO/IMP_ORDER01.wav create mode 100644 Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/ImpVO/IMP_ORDER02.wav create mode 100644 Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/ImpVO/IMP_ORDER03.wav create mode 100644 Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/ImpVO/IMP_ORDER04.wav create mode 100644 Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/SuccubusVO/SUCCUBUS_DISMISS01.wav create mode 100644 Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/SuccubusVO/SUCCUBUS_DISMISS02.wav create mode 100644 Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/SuccubusVO/SUCCUBUS_DISMISS03.wav create mode 100644 Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/SuccubusVO/SUCCUBUS_DISMISS04.wav create mode 100644 Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/SuccubusVO/SUCCUBUS_FUNNY.wav create mode 100644 Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/SuccubusVO/SUCCUBUS_KILL01.wav create mode 100644 Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/SuccubusVO/SUCCUBUS_KILL02.wav create mode 100644 Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/SuccubusVO/SUCCUBUS_KILL03.wav create mode 100644 Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/SuccubusVO/SUCCUBUS_KILL04.wav create mode 100644 Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/SuccubusVO/SUCCUBUS_ORDER01.wav create mode 100644 Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/SuccubusVO/SUCCUBUS_ORDER02.wav create mode 100644 Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/SuccubusVO/SUCCUBUS_ORDER03.wav create mode 100644 Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/SuccubusVO/SUCCUBUS_ORDER05.wav create mode 100644 Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/SuccubusVO/SUCCUBUS_SUMMON01.wav create mode 100644 Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/SuccubusVO/SUCCUBUS_SUMMON02.wav create mode 100644 Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/SuccubusVO/SUCCUBUS_SUMMON03.wav create mode 100644 Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/SuccubusVO/SUCCUBUS_SUMMON04.wav create mode 100644 Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/VoidWalkerVO/VOID_DISMISS01.wav create mode 100644 Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/VoidWalkerVO/VOID_DISMISS02.wav create mode 100644 Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/VoidWalkerVO/VOID_DISMISS03.wav create mode 100644 Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/VoidWalkerVO/VOID_DISMISS04.wav create mode 100644 Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/VoidWalkerVO/VOID_FUNNY.wav create mode 100644 Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/VoidWalkerVO/VOID_KILL01.wav create mode 100644 Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/VoidWalkerVO/VOID_KILL02.wav create mode 100644 Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/VoidWalkerVO/VOID_KILL03.wav create mode 100644 Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/VoidWalkerVO/VOID_KILL04.wav create mode 100644 Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/VoidWalkerVO/VOID_ORDER01.wav create mode 100644 Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/VoidWalkerVO/VOID_ORDER02.wav create mode 100644 Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/VoidWalkerVO/VOID_ORDER03.wav create mode 100644 Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/VoidWalkerVO/VOID_ORDER05.wav create mode 100644 Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/VoidWalkerVO/VOID_SUMMON01.wav create mode 100644 Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/VoidWalkerVO/VOID_SUMMON02.wav create mode 100644 Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/VoidWalkerVO/VOID_SUMMON03.wav create mode 100644 Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/VoidWalkerVO/VOID_SUMMON04.wav create mode 100644 Payload/Fallback/ClassicAPI.dll create mode 100644 Payload/Fallback/Interact/Addon/Bindings.xml create mode 100644 Payload/Fallback/Interact/Addon/Interact.lua create mode 100644 Payload/Fallback/Interact/Addon/Interact.toc create mode 100644 Payload/Fallback/Interact/Interact.dll create mode 100644 Payload/Fallback/VanillaMultiMonitorFix/VMMFix_preferred_monitor.txt create mode 100644 Payload/Fallback/VanillaMultiMonitorFix/VanillaMultiMonitorFix.dll create mode 100644 Payload/Fallback/versions.json delete mode 100644 Payload/Interface/Addons/UnitXP_SP3_Addon/README.md delete mode 100644 Payload/Interface/Addons/nampowersettings/README.md delete mode 100644 Payload/Interface/Addons/nampowersettings/img.png diff --git a/Payload/Fallback/AuctionQueryThrottle.dll b/Payload/Fallback/AuctionQueryThrottle.dll new file mode 100644 index 0000000000000000000000000000000000000000..0c569521ca0036777b49b46b66e176f2bda5f80c GIT binary patch literal 92672 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 V(b?o|cf}}!@q3Y9!oLp({s*Lt2R{G+ literal 0 HcmV?d00001 diff --git a/Payload/Fallback/Audio/FishPing/Sound/Spells/Tradeskills/FishBite.wav b/Payload/Fallback/Audio/FishPing/Sound/Spells/Tradeskills/FishBite.wav new file mode 100644 index 0000000000000000000000000000000000000000..0fd4d5903e13e72c3a80d4641aa9ff946e04ef20 GIT binary patch literal 44596 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 literal 0 HcmV?d00001 diff --git a/Payload/Fallback/Audio/NoErrorSounds/Sound/Spells/Fizzle/FizzleFireA.wav b/Payload/Fallback/Audio/NoErrorSounds/Sound/Spells/Fizzle/FizzleFireA.wav new file mode 100644 index 0000000000000000000000000000000000000000..c6dd135bee9dcfd3e93a28878830ac4ab6fb56e9 GIT binary patch literal 482 zcmYk0O-=$)5QIMn2OuVls7Mgdpn!KUK@zt{28^OJ86f<~ZVu(bjo0xsRy`-`qSF1k zzp8%scjNI_38pvk?P{O54uBG6Mjuf9EK{MX$tunAit1Kcq#EYxaLjT z7u7Srf8>2X^gD*XvvrsaL&l083og|6B-a~k8^$3fA(E_otbFoOjr98@veWFzSrP6sL5-= z`Hr*AdN<>UM~#EYxaLjT z7u7Srf8>2X^gD*XvvrsaL&l083og|6B-a~k8^$3fA(E_otbFoOjr98@veWFzSrP6sL5-= z`Hr*AdN<>UM~#EYxaLjT z7u7Srf8>2X^gD*XvvrsaL&l083og|6B-a~k8^$3fA(E_otbFoOjr98@veWFzSrP6sL5-= z`Hr*AdN<>UM~#EYxaLjT z7u7Srf8>2X^gD*XvvrsaL&l083og|6B-a~k8^$3fA(E_otbFoOjr98@veWFzSrP6sL5-= z`Hr*AdN<>UM~#EYxaLjT z7u7Srf8>2X^gD*XvvrsaL&l083og|6B-a~k8^$3fA(E_otbFoOjr98@veWFzSrP6sL5-= z`Hr*AdN<>UM~#EYxaLjT z7u7Srf8>2X^gD*XvvrsaL&l083og|6B-a~k8^$3fA(E_otbFoOjr98@veWFzSrP6sL5-= z`Hr*AdN<>UM~#EYxaLjT z7u7Srf8>2X^gD*XvvrsaL&l083og|6B-a~k8^$3fA(E_otbFoOjr98@veWFzSrP6sL5-= z`Hr*AdN<>UM~#EYxaLjT z7u7Srf8>2X^gD*XvvrsaL&l083og|6B-a~k8^$3fA(E_otbFoOjr98@veWFzSrP6sL5-= z`Hr*AdN<>UM~#EYxaLjT z7u7Srf8>2X^gD*XvvrsaL&l083og|6B-a~k8^$3fA(E_otbFoOjr98@veWFzSrP6sL5-= z`Hr*AdN<>UM~#EYxaLjT z7u7Srf8>2X^gD*XvvrsaL&l083og|6B-a~k8^$3fA(E_otbFoOjr98@veWFzSrP6sL5-= z`Hr*AdN<>UM~#EYxaLjT z7u7Srf8>2X^gD*XvvrsaL&l083og|6B-a~k8^$3fA(E_otbFoOjr98@veWFzSrP6sL5-= z`Hr*AdN<>UM~#EYxaLjT z7u7Srf8>2X^gD*XvvrsaL&l083og|6B-a~k8^$3fA(E_otbFoOjr98@veWFzSrP6sL5-= z`Hr*AdN<>UM~#EYxaLjT z7u7Srf8>2X^gD*XvvrsaL&l083og|6B-a~k8^$3fA(E_otbFoOjr98@veWFzSrP6sL5-= z`Hr*AdN<>UM~#EYxaLjT z7u7Srf8>2X^gD*XvvrsaL&l083og|6B-a~k8^$3fA(E_otbFoOjr98@veWFzSrP6sL5-= z`Hr*AdN<>UM~#EYxaLjT z7u7Srf8>2X^gD*XvvrsaL&l083og|6B-a~k8^$3fA(E_otbFoOjr98@veWFzSrP6sL5-= z`Hr*AdN<>UM~#EYxaLjT z7u7Srf8>2X^gD*XvvrsaL&l083og|6B-a~k8^$3fA(E_otbFoOjr98@veWFzSrP6sL5-= z`Hr*AdN<>UM~#EYxaLjT z7u7Srf8>2X^gD*XvvrsaL&l083og|6B-a~k8^$3fA(E_otbFoOjr98@veWFzSrP6sL5-= z`Hr*AdN<>UM~#EYxaLjT z7u7Srf8>2X^gD*XvvrsaL&l083og|6B-a~k8^$3fA(E_otbFoOjr98@veWFzSrP6sL5-= z`Hr*AdN<>UM~#EYxaLjT z7u7Srf8>2X^gD*XvvrsaL&l083og|6B-a~k8^$3fA(E_otbFoOjr98@veWFzSrP6sL5-= z`Hr*AdN<>UM~#EYxaLjT z7u7Srf8>2X^gD*XvvrsaL&l083og|6B-a~k8^$3fA(E_otbFoOjr98@veWFzSrP6sL5-= z`Hr*AdN<>UM~#EYxaLjT z7u7Srf8>2X^gD*XvvrsaL&l083og|6B-a~k8^$3fA(E_otbFoOjr98@veWFzSrP6sL5-= z`Hr*AdN<>UM~#EYxaLjT z7u7Srf8>2X^gD*XvvrsaL&l083og|6B-a~k8^$3fA(E_otbFoOjr98@veWFzSrP6sL5-= z`Hr*AdN<>UM~#EYxaLjT z7u7Srf8>2X^gD*XvvrsaL&l083og|6B-a~k8^$3fA(E_otbFoOjr98@veWFzSrP6sL5-= z`Hr*AdN<>UM~#EYxaLjT z7u7Srf8>2X^gD*XvvrsaL&l083og|6B-a~k8^$3fA(E_otbFoOjr98@veWFzSrP6sL5-= z`Hr*AdN<>UM~#EYxaLjT z7u7Srf8>2X^gD*XvvrsaL&l083og|6B-a~k8^$3fA(E_otbFoOjr98@veWFzSrP6sL5-= z`Hr*AdN<>UM~#EYxaLjT z7u7Srf8>2X^gD*XvvrsaL&l083og|6B-a~k8^$3fA(E_otbFoOjr98@veWFzSrP6sL5-= z`Hr*AdN<>UM~#EYxaLjT z7u7Srf8>2X^gD*XvvrsaL&l083og|6B-a~k8^$3fA(E_otbFoOjr98@veWFzSrP6sL5-= z`Hr*AdN<>UM~#EYxaLjT z7u7Srf8>2X^gD*XvvrsaL&l083og|6B-a~k8^$3fA(E_otbFoOjr98@veWFzSrP6sL5-= z`Hr*AdN<>UM~#EYxaLjT z7u7Srf8>2X^gD*XvvrsaL&l083og|6B-a~k8^$3fA(E_otbFoOjr98@veWFzSrP6sL5-= z`Hr*AdN<>UM~#EYxaLjT z7u7Srf8>2X^gD*XvvrsaL&l083og|6B-a~k8^$3fA(E_otbFoOjr98@veWFzSrP6sL5-= z`Hr*AdN<>UM~#EYxaLjT z7u7Srf8>2X^gD*XvvrsaL&l083og|6B-a~k8^$3fA(E_otbFoOjr98@veWFzSrP6sL5-= z`Hr*AdN<>UM~#EYxaLjT z7u7Srf8>2X^gD*XvvrsaL&l083og|6B-a~k8^$3fA(E_otbFoOjr98@veWFzSrP6sL5-= z`Hr*AdN<>UM~#EYxaLjT z7u7Srf8>2X^gD*XvvrsaL&l083og|6B-a~k8^$3fA(E_otbFoOjr98@veWFzSrP6sL5-= z`Hr*AdN<>UM~#EYxaLjT z7u7Srf8>2X^gD*XvvrsaL&l083og|6B-a~k8^$3fA(E_otbFoOjr98@veWFzSrP6sL5-= z`Hr*AdN<>UM~#EYxaLjT z7u7Srf8>2X^gD*XvvrsaL&l083og|6B-a~k8^$3fA(E_otbFoOjr98@veWFzSrP6sL5-= z`Hr*AdN<>UM~#EYxaLjT z7u7Srf8>2X^gD*XvvrsaL&l083og|6B-a~k8^$3fA(E_otbFoOjr98@veWFzSrP6sL5-= z`Hr*AdN<>UM~#EYxaLjT z7u7Srf8>2X^gD*XvvrsaL&l083og|6B-a~k8^$3fA(E_otbFoOjr98@veWFzSrP6sL5-= z`Hr*AdN<>UM~#EYxaLjT z7u7Srf8>2X^gD*XvvrsaL&l083og|6B-a~k8^$3fA(E_otbFoOjr98@veWFzSrP6sL5-= z`Hr*AdN<>UM~#EYxaLjT z7u7Srf8>2X^gD*XvvrsaL&l083og|6B-a~k8^$3fA(E_otbFoOjr98@veWFzSrP6sL5-= z`Hr*AdN<>UM~#EYxaLjT z7u7Srf8>2X^gD*XvvrsaL&l083og|6B-a~k8^$3fA(E_otbFoOjr98@veWFzSrP6sL5-= z`Hr*AdN<>UM~#EYxaLjT z7u7Srf8>2X^gD*XvvrsaL&l083og|6B-a~k8^$3fA(E_otbFoOjr98@veWFzSrP6sL5-= z`Hr*AdN<>UM~#EYxaLjT z7u7Srf8>2X^gD*XvvrsaL&l083og|6B-a~k8^$3fA(E_otbFoOjr98@veWFzSrP6sL5-= z`Hr*AdN<>UM~#EYxaLjT z7u7Srf8>2X^gD*XvvrsaL&l083og|6B-a~k8^$3fA(E_otbFoOjr98@veWFzSrP6sL5-= z`Hr*AdN<>UM~#EYxaLjT z7u7Srf8>2X^gD*XvvrsaL&l083og|6B-a~k8^$3fA(E_otbFoOjr98@veWFzSrP6sL5-= z`Hr*AdN<>UM~#EYxaLjT z7u7Srf8>2X^gD*XvvrsaL&l083og|6B-a~k8^$3fA(E_otbFoOjr98@veWFzSrP6sL5-= z`Hr*AdN<>UM~#EYxaLjT z7u7Srf8>2X^gD*XvvrsaL&l083og|6B-a~k8^$3fA(E_otbFoOjr98@veWFzSrP6sL5-= z`Hr*AdN<>UM~#EYxaLjT z7u7Srf8>2X^gD*XvvrsaL&l083og|6B-a~k8^$3fA(E_otbFoOjr98@veWFzSrP6sL5-= z`Hr*AdN<>UM~#EYxaLjT z7u7Srf8>2X^gD*XvvrsaL&l083og|6B-a~k8^$3fA(E_otbFoOjr98@veWFzSrP6sL5-= z`Hr*AdN<>UM~#EYxaLjT z7u7Srf8>2X^gD*XvvrsaL&l083og|6B-a~k8^$3fA(E_otbFoOjr98@veWFzSrP6sL5-= z`Hr*AdN<>UM~#EYxaLjT z7u7Srf8>2X^gD*XvvrsaL&l083og|6B-a~k8^$3fA(E_otbFoOjr98@veWFzSrP6sL5-= z`Hr*AdN<>UM~#EYxaLjT z7u7Srf8>2X^gD*XvvrsaL&l083og|6B-a~k8^$3fA(E_otbFoOjr98@veWFzSrP6sL5-= z`Hr*AdN<>UM~#EYxaLjT z7u7Srf8>2X^gD*XvvrsaL&l083og|6B-a~k8^$3fA(E_otbFoOjr98@veWFzSrP6sL5-= z`Hr*AdN<>UM~#EYxaLjT z7u7Srf8>2X^gD*XvvrsaL&l083og|6B-a~k8^$3fA(E_otbFoOjr98@veWFzSrP6sL5-= z`Hr*AdN<>UM~#EYxaLjT z7u7Srf8>2X^gD*XvvrsaL&l083og|6B-a~k8^$3fA(E_otbFoOjr98@veWFzSrP6sL5-= z`Hr*AdN<>UM~#EYxaLjT z7u7Srf8>2X^gD*XvvrsaL&l083og|6B-a~k8^$3fA(E_otbFoOjr98@veWFzSrP6sL5-= z`Hr*AdN<>UM~#EYxaLjT z7u7Srf8>2X^gD*XvvrsaL&l083og|6B-a~k8^$3fA(E_otbFoOjr98@veWFzSrP6sL5-= z`Hr*AdN<>UM~#EYxaLjT z7u7Srf8>2X^gD*XvvrsaL&l083og|6B-a~k8^$3fA(E_otbFoOjr98@veWFzSrP6sL5-= z`Hr*AdN<>UM~#EYxaLjT z7u7Srf8>2X^gD*XvvrsaL&l083og|6B-a~k8^$3fA(E_otbFoOjr98@veWFzSrP6sL5-= z`Hr*AdN<>UM~#EYxaLjT z7u7Srf8>2X^gD*XvvrsaL&l083og|6B-a~k8^$3fA(E_otbFoOjr98@veWFzSrP6sL5-= z`Hr*AdN<>UM~#EYxaLjT z7u7Srf8>2X^gD*XvvrsaL&l083og|6B-a~k8^$3fA(E_otbFoOjr98@veWFzSrP6sL5-= z`Hr*AdN<>UM~#EYxaLjT z7u7Srf8>2X^gD*XvvrsaL&l083og|6B-a~k8^$3fA(E_otbFoOjr98@veWFzSrP6sL5-= z`Hr*AdN<>UM~#EYxaLjT z7u7Srf8>2X^gD*XvvrsaL&l083og|6B-a~k8^$3fA(E_otbFoOjr98@veWFzSrP6sL5-= z`Hr*AdN<>UM~#EYxaLjT z7u7Srf8>2X^gD*XvvrsaL&l083og|6B-a~k8^$3fA(E_otbFoOjr98@veWFzSrP6sL5-= z`Hr*AdN<>UM~#EYxaLjT z7u7Srf8>2X^gD*XvvrsaL&l083og|6B-a~k8^$3fA(E_otbFoOjr98@veWFzSrP6sL5-= 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

gW%|>F^>(V983HYpAqmKbDZsB{!huEnyMPvAb9Q zVR1LyRKy|!zHx~s(I_GTKpF8xhl0=apOI~m<~T5$Zte)e0?P~yjI>Bl`$J4nV?Mxw&UA2u4_Q9Ct<8{t9WvZ}w@}HGT_4 zdl<53b+3((IHAu55PPNAgD1^1E1T?3BUbHCRn+EeY4pat39+>1Al@ZTjke|%EPYw# zDSxTYV2!e-?D)yUs2gkT5M zgK?o)gHk*|fC#3NhR9R$MXVL%jX{jOabtOoeHY*C@9|Ynn+esH=991qWyc+qHKGd* z0Dgp3ow|f~glHIYn}WsSzyKLpJ`unFovk{# z(Sd*x>jY4wG9c^H(GbrpHi75MRRotH6_So3;v%|PLt6r2 zSkO`h-!(OEs4qy*VRMQG85PO^iC&uiap_VjY5x=p90>v!aOgImt?+mehuC$<3))bQ z&;@q{ewdl+nI1=hKJARD9^#I61tq?4eh*R?CTAI*AkK**ZrcUXz)Ir?@MBBVJ=i{w zB1&}{KC-!jpZH?=i*W{M7cA+lcn$KB;KzR0$}qO0VU*bXLu&5!#^(Alt~-pqtrH~B z@J>CgL9jT5h2#1f;<})RWp1&N0g?s5#ofVdPY%=MaW95xG8$Ig3T;C*Wdzu29s7L+ z9NCEm{2k2KG_n+mfdC3a+QS_�Is5zoR1Agp)4RNY&ec0fw}WOEi6Iv{Q^wTLI|@ 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

G$l6Zw`|Vb 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%0Ds!ErGnDyIrq_=v^h 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

EL$h_7ltCqj+#IeE8NA!435*jKtcoi@U&#Lj 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

=m}V+@Qr(plnyQrg#8)s6K?#CKQ(>T8x#DMEM& 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

`R`LttPl$Cz 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

XqusLRG!QMXGvZ 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%0DP1zO<)Qfs)FD4C;{zroemD7?r|-_bb4 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 aEYf^(qG@N@u*5G*A`{wwRT)`5{C@$`GfYqb

M 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 QdP_V#P|IKcKl{(W0rY1Pv;Y7A literal 0 HcmV?d00001 diff --git a/Payload/Fallback/Interact/Addon/Bindings.xml b/Payload/Fallback/Interact/Addon/Bindings.xml new file mode 100644 index 0000000..023477e --- /dev/null +++ b/Payload/Fallback/Interact/Addon/Bindings.xml @@ -0,0 +1,8 @@ + + + Interact(0) + + + Interact(1) + + \ No newline at end of file diff --git a/Payload/Fallback/Interact/Addon/Interact.lua b/Payload/Fallback/Interact/Addon/Interact.lua new file mode 100644 index 0000000..48f61f4 --- /dev/null +++ b/Payload/Fallback/Interact/Addon/Interact.lua @@ -0,0 +1,21 @@ +BINDING_HEADER_INTERACT = 'Interact' + +StaticPopupDialogs['INTERACT_WARNING'] = { + text = 'Failed to load |cffffd200Interact|cffffffff. Follow the installation instructions to ensure proper installation.', + button1 = 'Okay', + timeout = 0, + whileDead = true, +} + +if not InteractNearest then + StaticPopup_Show('INTERACT_WARNING') +end + +function Interact(autoloot) + if not InteractNearest then + StaticPopup_Show('INTERACT_WARNING') + return + end + + InteractNearest(autoloot) +end \ No newline at end of file diff --git a/Payload/Fallback/Interact/Addon/Interact.toc b/Payload/Fallback/Interact/Addon/Interact.toc new file mode 100644 index 0000000..9719cf9 --- /dev/null +++ b/Payload/Fallback/Interact/Addon/Interact.toc @@ -0,0 +1,9 @@ +## Interface: 11200 +## Title: Interact |cff808080by luskanek +## Author: luskanek +## Notes: Interact Key from Retail ported to Vanilla. +## Version: GIT + +Interact.lua + +Bindings.xml \ No newline at end of file diff --git a/Payload/Fallback/Interact/Interact.dll b/Payload/Fallback/Interact/Interact.dll new file mode 100644 index 0000000000000000000000000000000000000000..b4fb092408c9327bad556c3d21bbeebba9e6b27c GIT binary patch literal 55808 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 V)5d_8E!v&n9K)_d<$tl~e*u)CMG61_ literal 0 HcmV?d00001 diff --git a/Payload/Fallback/versions.json b/Payload/Fallback/versions.json new file mode 100644 index 0000000..0ccad52 --- /dev/null +++ b/Payload/Fallback/versions.json @@ -0,0 +1,530 @@ +{ + "components": { + "AuctionQueryThrottle fallback": { + "files": [ + { + "path": "Payload/Fallback/AuctionQueryThrottle.dll", + "sha256": "720b7ad72941206249df23cb9d36addafa2634f190081f7b33834b84af184f5e", + "size": 92672 + } + ], + "source": "https://github.com/brues-code/AuctionQueryThrottle/releases/download/v1.2.0/AuctionQueryThrottle.dll", + "version": "v1.2.0" + }, + "ClassicAPI fallback": { + "files": [ + { + "path": "Payload/Fallback/ClassicAPI.dll", + "sha256": "2a823b141326383a56fba100d09f5a72f34798b08f38fa9340e5bdc2ee31dc65", + "size": 1145856 + } + ], + "source": "https://github.com/brues-code/ClassicAPI/releases/download/v1.12.7/ClassicAPI.dll", + "version": "v1.12.7" + }, + "FishPing fallback": { + "files": [ + { + "path": "Payload/Fallback/Audio/FishPing/Sound/Spells/Tradeskills/FishBite.wav", + "sha256": "80497c141e2dfe1dde5cc78d0afc7e1381363e8f1dd491af8dd8faa70d872def", + "size": 44596 + } + ], + "source": "https://codeload.github.com/notsureawake/FishPing/zip/refs/heads/master", + "version": "master" + }, + "Interact fallback": { + "files": [ + { + "path": "Payload/Fallback/Interact/Interact.dll", + "sha256": "ab716314eed559a10607ecdc655f71911196ffae69706cf1d373d01df86a915d", + "size": 55808 + } + ], + "source": "https://github.com/lookino/Interact/releases/download/v1.0.4/Interact.zip", + "version": "v1.0.4" + }, + "Nampower": { + "files": [ + { + "path": "Payload/nampower.dll", + "sha256": "304bdb35bc00b18ee092b3bc01195319f717c37d9c6babe6775e8fe278229d22", + "size": 1058816 + } + ], + "source": "https://github.com/brues-code/nampower/releases/download/v4.6.1/nampower-v4.6.1.zip", + "version": "v4.6.1" + }, + "NoErrorSounds fallback": { + "files": [ + { + "path": "Payload/Fallback/Audio/NoErrorSounds/Sound/interface/uChatScrollButton.wav", + "sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954", + "size": 482 + }, + { + "path": "Payload/Fallback/Audio/NoErrorSounds/Sound/interface/iUiInterfaceButtonA.wav", + "sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954", + "size": 482 + }, + { + "path": "Payload/Fallback/Audio/NoErrorSounds/Sound/interface/uEscapeScreenClose.wav", + "sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954", + "size": 482 + }, + { + "path": "Payload/Fallback/Audio/NoErrorSounds/Sound/interface/uEscapeScreenOpen.wav", + "sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954", + "size": 482 + }, + { + "path": "Payload/Fallback/Audio/NoErrorSounds/Sound/Spells/Fizzle/FizzleFrostA.wav", + "sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954", + "size": 482 + }, + { + "path": "Payload/Fallback/Audio/NoErrorSounds/Sound/Spells/Fizzle/FizzleNatureA.wav", + "sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954", + "size": 482 + }, + { + "path": "Payload/Fallback/Audio/NoErrorSounds/Sound/Spells/Fizzle/FizzleHolyA.wav", + "sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954", + "size": 482 + }, + { + "path": "Payload/Fallback/Audio/NoErrorSounds/Sound/Spells/Fizzle/FizzleFireA.wav", + "sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954", + "size": 482 + }, + { + "path": "Payload/Fallback/Audio/NoErrorSounds/Sound/Spells/Fizzle/FizzleShadowA.wav", + "sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954", + "size": 482 + } + ], + "source": "https://codeload.github.com/Macumbafeh/NoErrorSounds/zip/refs/heads/main", + "version": "main" + }, + "PerfBoost": { + "files": [ + { + "path": "Payload/perf_boost.dll", + "sha256": "7019e2f31c4f56caa616f1b4b2587c56ff276f2c27c9f35535e2578eafbd4dbe", + "size": 578560 + } + ], + "source": "https://raw.githubusercontent.com/RetroCro/TurtleWoW-Mods/refs/heads/main/Archive/DLL%20BACKUP/perf_boost.dll", + "version": "RetroCro main" + }, + "SuperWoW": { + "files": [ + { + "path": "Payload/SuperWoWhook.dll", + "sha256": "bd214b32c878649e94ce654835946bd05e0ce7710e8f01bae10d8ab50a89351d", + "size": 1000448 + } + ], + "source": "https://github.com/balakethelock/SuperWoW/releases/download/Release/SuperWoW.release.2.2.zip", + "version": "Release" + }, + "UnitXP_SP3": { + "files": [ + { + "path": "Payload/UnitXP_SP3.dll", + "sha256": "1d1a622fc4fd74864bdd5aa29d8c4ed2dd5cbb0340f978cbf4daca815235d10a", + "size": 185344 + } + ], + "source": "https://github.com/brues-code/UnitXP_SP3/releases/download/v90/UnitXP_SP3-v90.zip", + "version": "v90" + }, + "VanillaHelpers": { + "files": [ + { + "path": "Payload/VanillaHelpers.dll", + "sha256": "1e74ddf6484c23482550d5f9e5f9d291085c4ac538d3b3ed9d87155521841196", + "size": 254976 + } + ], + "source": "https://github.com/isfir/VanillaHelpers/releases/download/v1.1.2/VanillaHelpers.dll", + "version": "v1.1.2" + }, + "VanillaMultiMonitorFix fallback": { + "files": [ + { + "path": "Payload/Fallback/VanillaMultiMonitorFix/VanillaMultiMonitorFix.dll", + "sha256": "7fa033e744c4b8794a4c97a45d563a8870264244bfa1e478a1c0f85e0c6e3371", + "size": 28160 + }, + { + "path": "Payload/Fallback/VanillaMultiMonitorFix/VMMFix_preferred_monitor.txt", + "sha256": "6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b", + "size": 1 + } + ], + "source": "https://github.com/Mates1500/VanillaMultiMonitorFix/releases/download/0.2/release.zip", + "version": "0.2" + }, + "WarlockMutedDemons fallback": { + "files": [ + { + "path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/DoomGuardVO/DOOM_KILL03.wav", + "sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954", + "size": 482 + }, + { + "path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/DoomGuardVO/DOOM_KILL02.wav", + "sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954", + "size": 482 + }, + { + "path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/DoomGuardVO/DOOM_DISMISS03.wav", + "sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954", + "size": 482 + }, + { + "path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/DoomGuardVO/DOOM_DISMISS04.wav", + "sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954", + "size": 482 + }, + { + "path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/DoomGuardVO/DOOM_SUMMON04.wav", + "sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954", + "size": 482 + }, + { + "path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/DoomGuardVO/DOOM_ORDER01.wav", + "sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954", + "size": 482 + }, + { + "path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/DoomGuardVO/DOOM_SUMMON02.wav", + "sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954", + "size": 482 + }, + { + "path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/DoomGuardVO/DOOM_FUNNY.wav", + "sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954", + "size": 482 + }, + { + "path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/DoomGuardVO/DOOM_ORDER03.wav", + "sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954", + "size": 482 + }, + { + "path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/DoomGuardVO/DOOM_DISMISS01.wav", + "sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954", + "size": 482 + }, + { + "path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/DoomGuardVO/DOOM_SUMMON03.wav", + "sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954", + "size": 482 + }, + { + "path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/DoomGuardVO/DOOM_SUMMON01.wav", + "sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954", + "size": 482 + }, + { + "path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/DoomGuardVO/DOOM_ORDER02.wav", + "sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954", + "size": 482 + }, + { + "path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/DoomGuardVO/DOOM_KILL01.wav", + "sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954", + "size": 482 + }, + { + "path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/DoomGuardVO/DOOM_KILL04.wav", + "sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954", + "size": 482 + }, + { + "path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/DoomGuardVO/DOOM_DISMISS02.wav", + "sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954", + "size": 482 + }, + { + "path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/DoomGuardVO/DOOM_ORDER05.wav", + "sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954", + "size": 482 + }, + { + "path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/VoidWalkerVO/VOID_SUMMON02.wav", + "sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954", + "size": 482 + }, + { + "path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/VoidWalkerVO/VOID_ORDER03.wav", + "sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954", + "size": 482 + }, + { + "path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/VoidWalkerVO/VOID_KILL04.wav", + "sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954", + "size": 482 + }, + { + "path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/VoidWalkerVO/VOID_ORDER05.wav", + "sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954", + "size": 482 + }, + { + "path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/VoidWalkerVO/VOID_ORDER01.wav", + "sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954", + "size": 482 + }, + { + "path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/VoidWalkerVO/VOID_DISMISS03.wav", + "sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954", + "size": 482 + }, + { + "path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/VoidWalkerVO/VOID_SUMMON01.wav", + "sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954", + "size": 482 + }, + { + "path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/VoidWalkerVO/VOID_SUMMON03.wav", + "sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954", + "size": 482 + }, + { + "path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/VoidWalkerVO/VOID_FUNNY.wav", + "sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954", + "size": 482 + }, + { + "path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/VoidWalkerVO/VOID_ORDER02.wav", + "sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954", + "size": 482 + }, + { + "path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/VoidWalkerVO/VOID_SUMMON04.wav", + "sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954", + "size": 482 + }, + { + "path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/VoidWalkerVO/VOID_KILL02.wav", + "sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954", + "size": 482 + }, + { + "path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/VoidWalkerVO/VOID_DISMISS02.wav", + "sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954", + "size": 482 + }, + { + "path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/VoidWalkerVO/VOID_DISMISS01.wav", + "sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954", + "size": 482 + }, + { + "path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/VoidWalkerVO/VOID_DISMISS04.wav", + "sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954", + "size": 482 + }, + { + "path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/VoidWalkerVO/VOID_KILL01.wav", + "sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954", + "size": 482 + }, + { + "path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/VoidWalkerVO/VOID_KILL03.wav", + "sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954", + "size": 482 + }, + { + "path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/ImpVO/IMP_KILL02.wav", + "sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954", + "size": 482 + }, + { + "path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/ImpVO/IMP_ORDER04.wav", + "sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954", + "size": 482 + }, + { + "path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/ImpVO/IMP_DISMISS03.wav", + "sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954", + "size": 482 + }, + { + "path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/ImpVO/IMP_DISMISS02.wav", + "sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954", + "size": 482 + }, + { + "path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/ImpVO/IMP_KILL03.wav", + "sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954", + "size": 482 + }, + { + "path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/ImpVO/IMP_ORDER02.wav", + "sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954", + "size": 482 + }, + { + "path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/ImpVO/IMP_ORDER01.wav", + "sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954", + "size": 482 + }, + { + "path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/ImpVO/IMP_DISMISS04.wav", + "sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954", + "size": 482 + }, + { + "path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/ImpVO/IMP_KILL04.wav", + "sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954", + "size": 482 + }, + { + "path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/ImpVO/IMP_DISMISS05.wav", + "sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954", + "size": 482 + }, + { + "path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/ImpVO/IMP_ORDER03.wav", + "sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954", + "size": 482 + }, + { + "path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/ImpVO/IMP_FUNNY.wav", + "sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954", + "size": 482 + }, + { + "path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/ImpVO/IMP_KILL01.wav", + "sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954", + "size": 482 + }, + { + "path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/SuccubusVO/SUCCUBUS_DISMISS04.wav", + "sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954", + "size": 482 + }, + { + "path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/SuccubusVO/SUCCUBUS_FUNNY.wav", + "sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954", + "size": 482 + }, + { + "path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/SuccubusVO/SUCCUBUS_SUMMON02.wav", + "sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954", + "size": 482 + }, + { + "path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/SuccubusVO/SUCCUBUS_KILL03.wav", + "sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954", + "size": 482 + }, + { + "path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/SuccubusVO/SUCCUBUS_SUMMON03.wav", + "sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954", + "size": 482 + }, + { + "path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/SuccubusVO/SUCCUBUS_KILL04.wav", + "sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954", + "size": 482 + }, + { + "path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/SuccubusVO/SUCCUBUS_SUMMON01.wav", + "sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954", + "size": 482 + }, + { + "path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/SuccubusVO/SUCCUBUS_KILL02.wav", + "sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954", + "size": 482 + }, + { + "path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/SuccubusVO/SUCCUBUS_ORDER02.wav", + "sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954", + "size": 482 + }, + { + "path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/SuccubusVO/SUCCUBUS_DISMISS03.wav", + "sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954", + "size": 482 + }, + { + "path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/SuccubusVO/SUCCUBUS_DISMISS01.wav", + "sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954", + "size": 482 + }, + { + "path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/SuccubusVO/SUCCUBUS_ORDER01.wav", + "sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954", + "size": 482 + }, + { + "path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/SuccubusVO/SUCCUBUS_KILL01.wav", + "sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954", + "size": 482 + }, + { + "path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/SuccubusVO/SUCCUBUS_ORDER05.wav", + "sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954", + "size": 482 + }, + { + "path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/SuccubusVO/SUCCUBUS_DISMISS02.wav", + "sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954", + "size": 482 + }, + { + "path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/SuccubusVO/SUCCUBUS_ORDER03.wav", + "sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954", + "size": 482 + }, + { + "path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/SuccubusVO/SUCCUBUS_SUMMON04.wav", + "sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954", + "size": 482 + } + ], + "source": "https://codeload.github.com/spzilyk/Warlock-Muted-Demons/zip/refs/heads/main", + "version": "main" + }, + "WeirdPerformance": { + "files": [ + { + "path": "Payload/weirdperformance.dll", + "sha256": "872b73e9074b8fd95f968b099adf4139591c10ab6cd916c96082ed4a7b7b8c69", + "size": 204288 + } + ], + "source": "https://codeberg.org/Dusk92/WeirdUtils/releases/download/0.7.3/weirdperformance.dll", + "version": "0.7.3" + }, + "no1600x1200": { + "files": [ + { + "path": "Payload/no1600x1200.dll", + "sha256": "0df2274116278e8330dd7069902b642f1a83f33fefd909807a22eda197d88652", + "size": 104960 + } + ], + "source": "https://raw.githubusercontent.com/RetroCro/TurtleWoW-Mods/refs/heads/main/Archive/DLL%20BACKUP/no1600x1200.dll", + "version": "RetroCro main" + }, + "vanilla-tweaks fallback": { + "files": [ + { + "path": "vanilla-tweaks.exe", + "sha256": "e386132fd0e5713818893a9cef9e5ae41d99baff2da03f190911d351cc5ed090", + "size": 5927433 + } + ], + "source": "https://github.com/tubtubs/vanilla-tweaks/releases/download/tag/vanilla-tweaks_tag_x86_64-pc-windows-gnu.zip", + "version": "tag" + } + }, + "schema": 1 +} diff --git a/Payload/Interface/Addons/UnitXP_SP3_Addon/README.md b/Payload/Interface/Addons/UnitXP_SP3_Addon/README.md deleted file mode 100644 index 55a8785..0000000 --- a/Payload/Interface/Addons/UnitXP_SP3_Addon/README.md +++ /dev/null @@ -1,2 +0,0 @@ -# UnitXP_SP3_Addon -Vanilla 1.12 Lua Addon for supporting [UnitXP SP3 mod](https://codeberg.org/konaka/UnitXP_SP3) diff --git a/Payload/Interface/Addons/UnitXP_SP3_Addon/UnitXP_SP3_Addon.lua b/Payload/Interface/Addons/UnitXP_SP3_Addon/UnitXP_SP3_Addon.lua index 05d6eda..47a9c59 100644 --- a/Payload/Interface/Addons/UnitXP_SP3_Addon/UnitXP_SP3_Addon.lua +++ b/Payload/Interface/Addons/UnitXP_SP3_Addon/UnitXP_SP3_Addon.lua @@ -374,12 +374,13 @@ local function UnitXP_SP3_setShowInCombatNameplatesNearPlayer(enable) end local function UnitXP_SP3_setWeatherAlwaysClear(enable) - local test, result; - if enable then - test, result = pcall(UnitXP, "weatherAlwaysClear", "disableRain"); + local subcmd; + if enable == "enable" then + subcmd = "disableRain"; else - test, result = pcall(UnitXP, "weatherAlwaysClear", "enableRain"); + subcmd = "enableRain"; end + local test, result = pcall(UnitXP, "weatherAlwaysClear", subcmd); if not test then if not skipUpdateMessage then @@ -612,10 +613,10 @@ local function UnitXP_SP3_reloadConfig() end if UnitXP_SP3_Addon["weatherAlwaysClear"] then - UnitXP_SP3_setWeatherAlwaysClear(true); + UnitXP_SP3_setWeatherAlwaysClear("enable"); xpsp3_checkButton_weatherAlwaysClear:SetChecked(true); else - UnitXP_SP3_setWeatherAlwaysClear(false); + UnitXP_SP3_setWeatherAlwaysClear("disable"); xpsp3_checkButton_weatherAlwaysClear:SetChecked(false); end diff --git a/Payload/Interface/Addons/nampowersettings/Localization.lua b/Payload/Interface/Addons/nampowersettings/Localization.lua index 397ab0c..8b494b6 100644 --- a/Payload/Interface/Addons/nampowersettings/Localization.lua +++ b/Payload/Interface/Addons/nampowersettings/Localization.lua @@ -1,371 +1,371 @@ -local L = AceLibrary("AceLocale-2.2"):new("NampowerSettings") - -L:RegisterTranslations("enUS", function() - return { - ["|cffffcc00Nampower v2|cffffaaaa not present hiding settings."] = true, - - ["update available"] = "|cffffcc00Nampower update v2.20.0 available.|cffffcc00 Some settings may be hidden until you update. Replace your existing nampower.dll with the latest from https://gitea.com/avitasia/nampower/releases", - - ["Superwow required to display queued spells."] = true, - - ["Enable Per Character Settings"] = true, - ["Whether to use per character settings for all of the NP_ settings. This will cause settings saved in your character's NampowerSettings.lua to override any global settings in Config.wtf."] = true, - - ["Queue Cast Time Spells"] = true, - ["Whether to enable spell queuing for spells with a cast time"] = true, - - ["Queue Instant Spells"] = true, - ["Whether to enable spell queuing for instant cast spells tied to gcd"] = true, - - ["Queue On Swing Spells"] = true, - ["Whether to enable on swing spell queuing"] = true, - - ["Queue Channeling Spells"] = true, - ["Whether to enable channeling spell queuing"] = true, - - ["Queue Targeting Spells"] = true, - ["Whether to enable terrain targeting spell queuing"] = true, - - ["Queue Spells Coming Off Cooldown"] = true, - ["Whether to enable spell queuing for spells coming off cooldown"] = true, - - ["Queue Windows"] = true, - ["How much time in ms you have before a cast ends to queue different types of spells"] = true, - - ["Spell Queue Window (ms)"] = true, - ["The window in ms before a cast finishes where the next will get queued"] = true, - - ["On Swing Buffer Cooldown (ms)"] = true, - ["The cooldown time in ms after an on swing spell before you can queue on swing spells"] = true, - - ["Channel Queue Window (ms)"] = true, - ["The window in ms before a channel finishes where the next will get queued"] = true, - - ["Targeting Queue Window (ms)"] = true, - ["The window in ms before a terrain targeting spell finishes where the next will get queued"] = true, - - ["Cooldown Queue Window (ms)"] = true, - ["The window in ms before a spell coming off cooldown finishes where the next will get queued"] = true, - - ["Cast Options"] = true, - ["Options for controlling casting behavior"] = true, - - ["QOL Options"] = true, - ["Quality of life options to prevent common issues"] = true, - ["Chat Bubbles"] = true, - ["Chat bubble options"] = true, - ["Chat Bubbles (Say/Yell)"] = true, - ["Whether to enable chat bubbles for /say and /yell messages."] = true, - ["Chat Bubbles (Party)"] = true, - ["Whether to enable chat bubbles for /party messages."] = true, - ["Chat Bubbles (Whisper)"] = true, - ["Whether to enable chat bubbles for /whisper messages."] = true, - ["Chat Bubbles (Raid)"] = true, - ["Whether to enable chat bubbles for /raid messages."] = true, - ["Chat Bubbles (Battleground)"] = true, - ["Whether to enable chat bubbles for battleground messages."] = true, - ["Chat Bubble Distance"] = true, - ["The distance in yards to show chat bubbles"] = true, - - ["Advanced options"] = true, - ["Collection of various advanced options"] = true, - ["Spell Events"] = true, - ["Controls optional spell and combat event CVars."] = true, - - ["Double Cast to End Channel Early"] = true, - ["Whether to allow double casting a spell within 350ms to end channeling on the next tick. Takes into account your ChannelLatencyReductionPercentage."] = true, - - ["Quickcast Targeting Spells on Double Cast"] = true, - ["Allows casting targeting spells by attempting to cast them twice as opposed to the default client behavior which cancels the targeting indicator"] = true, - - ["Interrupt Channels Outside Queue Window"] = true, - ["Whether to allow interrupting channels (the original client behavior) when trying to cast a spell outside the channeling queue window"] = true, - - ["Retry Server Rejected Spells"] = true, - ["Whether to retry spells that are rejected by the server for these reasons: SPELL_FAILED_ITEM_NOT_READY, SPELL_FAILED_NOT_READY, SPELL_FAILED_SPELL_IN_PROGRESS"] = true, - - ["Quickcast Targeting Spells"] = true, - ["Whether to enable quick casting for ALL spells with terrain targeting"] = true, - - ["Replace Matching Non GCD Category"] = true, - ["Whether to replace any queued non gcd spell when a new non gcd spell with the same non zero StartRecoveryCategory is cast. Most trinkets and spells are category 0 which are ignored by this setting. The primary use case is to switch which potion you have queued."] = true, - - ["Optimize Buffer Using Packet Timings"] = true, - ["Whether to attempt to optimize your buffer using your latency and server packet timings"] = true, - - ["Minimum Buffer Time (ms)"] = true, - ["The minimum buffer delay in ms added to each cast"] = true, - - ["Non GCD Buffer Time (ms)"] = true, - ["The buffer delay in ms added AFTER each cast that is not tied to the gcd"] = true, - - ["Max Buffer Increase (ms)"] = true, - ["The maximum amount of time in ms to increase the buffer by when the server rejects a cast"] = true, - - ["Channel Latency Reduction (%)"] = true, - ["The percentage of your latency to subtract from the end of a channel duration to optimize cast time while hopefully not losing any ticks"] = true, - - ["Queued Spell Display Options"] = true, - ["Options for displaying an icon for the queued spell"] = true, - - ["Display queued spell icon"] = true, - ["Whether to display an icon of the queued spell"] = true, - - ["Icon size"] = true, - ["Change the spell icon size"] = true, - - ["Allow dragging"] = true, - ["Whether to allow interaction with the queued spell icon so you can move it around"] = true, - - ["Reset Position"] = true, - ["Reset the position of the queued spell icon"] = true, - - ["Show/Hide for positioning"] = true, - ["Test the queued spell icon and position it to your liking"] = true, - - ["Prevent Right Click Target Change"] = true, - ["Whether to prevent right-clicking from changing your current target when in combat. If you don't have a target right click will still change your target even with this on. This is mainly to prevent accidentally changing targets in combat when trying to adjust your camera."] = true, - - ["Nameplate Distance"] = true, - ["The distance in yards to show nameplates"] = true, - - ["Spam Protection"] = true, - ["Whether to enable spam protection functionality that blocks spamming spells while waiting for the server to respond to your initial cast due to issues spamming can cause"] = true, - - ["Prevent Right Click PvP Attack"] = true, - ["Whether to prevent right-clicking on PvP flagged players to avoid accidental PvP attacks"] = true, - - ["Prevent Mounting When Buff Capped"] = true, - ["Whether to prevent mounting when you have 32 buffs (buff capped) and are not already mounted. This prevents the issue where you mount but cannot dismount because the mount aura fails to apply due to the buff cap. When blocked, displays an error message."] = true, - - ["Enable Enhanced Tooltips"] = true, - ["Whether to enable nampower's tooltip additions such as spell proc chance, ICD, and item cooldown text."] = true, - - ["Enable Aura Cast Events"] = true, - ["Whether to enable AURA_CAST_ON_SELF and AURA_CAST_ON_OTHER events."] = true, - - ["Enable Auto Attack Events"] = true, - ["Whether to enable AUTO_ATTACK_SELF and AUTO_ATTACK_OTHER events."] = true, - - ["Enable Spell Start Events"] = true, - ["Whether to enable SPELL_START_SELF and SPELL_START_OTHER events."] = true, - - ["Enable Spell Go Events"] = true, - ["Whether to enable SPELL_GO_SELF and SPELL_GO_OTHER events."] = true, - - ["Enable Spell Heal Events"] = true, - ["Whether to enable SPELL_HEAL_BY_SELF, SPELL_HEAL_BY_OTHER, and SPELL_HEAL_ON_SELF events."] = true, - - ["Enable Spell Energize Events"] = true, - ["Whether to enable SPELL_ENERGIZE_BY_SELF, SPELL_ENERGIZE_BY_OTHER, and SPELL_ENERGIZE_ON_SELF events."] = true, - - ["Unit Event Filters"] = true, - ["Controls which unit identifiers trigger unit events (UNIT_HEALTH, UNIT_COMBAT, etc.). In the base game the same event can fire multiple times for the same unit, once per identifying string (e.g. 'party1', 'raid1', 'mouseover'). Disabling unused identifiers reduces redundant event calls. Note: 'player', 'target', and 'pet' (your own pet) always trigger regardless of these settings, as they are critical."] = true, - - ["Enable Pet Unit Events"] = true, - ["Whether to fire unit events (UNIT_HEALTH, UNIT_COMBAT, etc.) for party and raid pet identifiers ('party1pet', 'raid1pet', etc.). Party pets additionally require Enable Party Unit Events to be on; raid pets additionally require Enable Raid Unit Events to be on. Your own pet ('pet') always fires events regardless of this setting."] = true, - - ["Enable Party Unit Events"] = true, - ["Whether to fire unit events (UNIT_HEALTH, UNIT_COMBAT, etc.) for party member identifiers ('party1', 'party2', 'party3', 'party4'). Also required alongside Enable Pet Unit Events for party pet identifiers to fire."] = true, - - ["Enable Raid Unit Events"] = true, - ["Whether to fire unit events (UNIT_HEALTH, UNIT_COMBAT, etc.) for raid member identifiers ('raid1' through 'raid40'). Also required alongside Enable Pet Unit Events for raid pet identifiers to fire."] = true, - - ["Enable Mouseover Unit Events"] = true, - ["Whether to fire unit events (UNIT_HEALTH, UNIT_COMBAT, etc.) for the 'mouseover' unit identifier."] = true, - - ["Enable GUID Unit Events"] = true, - ["Whether to fire unit events (UNIT_HEALTH, UNIT_MANA, UNIT_AURA, etc.) using the raw GUID as the unit token, mirroring SuperWoW behavior. Fires for every unit the client tracks — not just named tokens like 'player', 'party1', 'raid1' — which can cause significant event spam in raids, BGs, and crowded zones. Older addons (e.g. pfUI) written for standard named tokens may have performance issues receiving GUID-based events. Addons needing GUID tracking (e.g. Automarker, Cursive) should use the new dedicated UNIT_HEALTH_GUID, UNIT_MANA_GUID, etc. events instead, allowing this to be safely disabled."] = true, - - ["Enable GUID Unit Event Filtering"] = true, - ["When enabled, suppresses high-frequency GUID events that cause spam in older addons — specifically UNIT_AURA, UNIT_HEALTH, UNIT_MANA, and similar events below UNIT_COMBAT, plus UNIT_NAME_UPDATE, UNIT_PORTRAIT_UPDATE, UNIT_INVENTORY_CHANGED, and PLAYER_GUILD_UPDATE. UNIT_COMBAT_GUID and other less frequent GUID events are still fired. Has no effect if Enable GUID Unit Events is disabled. This is a direct replacement for the 'Filter GUID Events' option in PerfBoost."] = true, - - ["Preserve Greater Demon Autocast"] = true, - ["Whether to remember and restore Felguard/Doomguard autocast preferences when swapping or resummoning those greater demons."] = true, - } -end) - -L:RegisterTranslations("zhCN", function() - return { - ["|cffffcc00Nampower v2|cffffaaaa not present hiding settings."] = "|cffffcc00Nampower v2|cffffaaaa 未安装,隐藏设置项。", - - ["update available"] = "|cffffcc00Nampower v2.20.0 更新可用。|cffffcc00 更新前部分设置可能隐藏。请从 https://gitea.com/avitasia/nampower/releases 下载最新 nampower.dll 替换当前版本。", - - ["Superwow required to display queued spells."] = "需 Superwow 插件显示队列中法术。", - - ["Enable Per Character Settings"] = "启用角色独立设置", - ["Whether to use per character settings for all of the NP_ settings. This will cause settings saved in your character's NampowerSettings.lua to override any global settings in Config.wtf."] = "是否为所有 NP_ 设置启用角色独立配置。启用后,角色 NampowerSettings.lua 中的设置将覆盖 Config.wtf 中的全局设置。", - - ["Queue Cast Time Spells"] = "队列施法时间法术", - ["Whether to enable spell queuing for spells with a cast time"] = "是否对施法时间类法术启用队列功能", - - ["Queue Instant Spells"] = "队列瞬发法术", - ["Whether to enable spell queuing for instant cast spells tied to gcd"] = "是否对涉及公共冷却的瞬发法术启用队列功能", - - ["Queue On Swing Spells"] = "队列特殊攻击法术", - ["Whether to enable on swing spell queuing"] = "是否对特殊攻击类法术(如战士压制)启用队列功能", - - ["Queue Channeling Spells"] = "队列引导法术", - ["Whether to enable channeling spell queuing"] = "是否对引导类法术(如暴风雪)启用队列功能", - - ["Queue Targeting Spells"] = "队列目标区域法术", - ["Whether to enable terrain targeting spell queuing"] = "是否对目标区域类法术(如暴风雪)启用队列功能", - - ["Queue Spells Coming Off Cooldown"] = "队列冷却结束法术", - ["Whether to enable spell queuing for spells coming off cooldown"] = "是否对即将结束冷却的法术启用队列功能", - - ["Queue Windows"] = "队列窗口设置", - ["How much time in ms you have before a cast ends to queue different types of spells"] = "各种法术类型在施法结束前多少毫秒(ms)开始进入队列", - - ["Spell Queue Window (ms)"] = "法术队列窗口(ms)", - ["The window in ms before a cast finishes where the next will get queued"] = "当前施法结束前多少毫秒(ms)可将下一个法术加入队列", - - ["On Swing Buffer Cooldown (ms)"] = "特殊攻击缓冲冷却(ms)", - ["The cooldown time in ms after an on swing spell before you can queue on swing spells"] = "特殊攻击法术施放后,多少毫秒(ms)内无法再次将同类法术加入队列", - - ["Channel Queue Window (ms)"] = "引导法术队列窗口(ms)", - ["The window in ms before a channel finishes where the next will get queued"] = "引导法术结束前多少毫秒(ms)可将下一个法术加入队列", - - ["Targeting Queue Window (ms)"] = "目标区域法术队列窗口(ms)", - ["The window in ms before a terrain targeting spell finishes where the next will get queued"] = "目标区域法术结束前多少毫秒(ms)可将下一个法术加入队列", - - ["Cooldown Queue Window (ms)"] = "冷却结束队列窗口(ms)", - ["The window in ms before a spell coming off cooldown finishes where the next will get queued"] = "法术冷却结束前多少毫秒(ms)可将该法术加入队列", - - ["Cast Options"] = "施法选项", - ["Options for controlling casting behavior"] = "控制施法行为的选项", - - ["QOL Options"] = "便利性选项", - ["Quality of life options to prevent common issues"] = "用于防止常见错误的便利性选项", - ["Chat Bubbles"] = "聊天气泡", - ["Chat bubble options"] = "聊天气泡相关选项", - ["Chat Bubbles (Say/Yell)"] = "聊天气泡(说话/大喊)", - ["Whether to enable chat bubbles for /say and /yell messages."] = "是否为 /say 与 /yell 消息启用聊天气泡。", - ["Chat Bubbles (Party)"] = "聊天气泡(队伍)", - ["Whether to enable chat bubbles for /party messages."] = "是否为 /party 消息启用聊天气泡。", - ["Chat Bubbles (Whisper)"] = "聊天气泡(密语)", - ["Whether to enable chat bubbles for /whisper messages."] = "是否为 /whisper 消息启用聊天气泡。", - ["Chat Bubbles (Raid)"] = "聊天气泡(团队)", - ["Whether to enable chat bubbles for /raid messages."] = "是否为 /raid 消息启用聊天气泡。", - ["Chat Bubbles (Battleground)"] = "聊天气泡(战场)", - ["Whether to enable chat bubbles for battleground messages."] = "是否为战场消息启用聊天气泡。", - ["Chat Bubble Distance"] = "聊天气泡距离", - ["The distance in yards to show chat bubbles"] = "显示聊天气泡的最大距离(码)", - - ["Advanced options"] = "高级选项", - ["Collection of various advanced options"] = "各类高级选项集合", - ["Spell Events"] = "法术事件", - ["Controls optional spell and combat event CVars."] = "控制可选的法术和战斗事件 CVar。", - - ["Double Cast to End Channel Early"] = "双重施法提前结束引导", - ["Whether to allow double casting a spell within 350ms to end channeling on the next tick. Takes into account your ChannelLatencyReductionPercentage."] = "是否允许350毫秒内双重施法以在下一个伤害周期提前结束引导。受引导延迟削减比例影响。", - - ["Quickcast Targeting Spells on Double Cast"] = "双重施法快速施放目标区域法术", - ["Allows casting targeting spells by attempting to cast them twice as opposed to the default client behavior which cancels the targeting indicator"] = "允许通过双次尝试施法来释放目标区域法术,而非默认客户端行为(取消目标指示器)", - - ["Interrupt Channels Outside Queue Window"] = "队列窗口外允许打断引导", - ["Whether to allow interrupting channels (the original client behavior) when trying to cast a spell outside the channeling queue window"] = "在引导法术队列窗口外尝试施法时,是否允许打断引导(默认客户端行为)", - - ["Retry Server Rejected Spells"] = "重试服务器拒绝的法术", - ["Whether to retry spells that are rejected by the server for these reasons: SPELL_FAILED_ITEM_NOT_READY, SPELL_FAILED_NOT_READY, SPELL_FAILED_SPELL_IN_PROGRESS"] = "是否对因以下原因被服务器拒绝的法术进行重试:未准备就绪、未冷却、已有法术施放中", - - ["Quickcast Targeting Spells"] = "快速施放目标区域法术", - ["Whether to enable quick casting for ALL spells with terrain targeting"] = "是否为所有目标区域法术启用快速施放功能", - - ["Replace Matching Non GCD Category"] = "替换同类型非公共冷却法术", - ["Whether to replace any queued non gcd spell when a new non gcd spell with the same non zero StartRecoveryCategory is cast. Most trinkets and spells are category 0 which are ignored by this setting. The primary use case is to switch which potion you have queued."] = "当施放新的非公共冷却法术且其启动类别相同时,是否替换队列中的同类法术。饰品和多数法术属类别0(不受影响),主要用于替换已队列的药水。", - - ["Optimize Buffer Using Packet Timings"] = "基于封包时间优化缓冲", - ["Whether to attempt to optimize your buffer using your latency and server packet timings"] = "是否根据延迟和服务器封包时间优化法术缓冲机制", - - ["Minimum Buffer Time (ms)"] = "最低缓冲时间(ms)", - ["The minimum buffer delay in ms added to each cast"] = "为每次施法添加的最小缓冲延迟(毫秒)", - - ["Non GCD Buffer Time (ms)"] = "非公共冷却缓冲时间(ms)", - ["The buffer delay in ms added AFTER each cast that is not tied to the gcd"] = "在非公共冷却法术施放后添加的缓冲延迟(毫秒)", - - ["Max Buffer Increase (ms)"] = "最大缓冲增加量(ms)", - ["The maximum amount of time in ms to increase the buffer by when the server rejects a cast"] = "当法术被服务器拒绝时,缓冲时间可增加的最大毫秒数", - - ["Channel Latency Reduction (%)"] = "引导延迟削减比例(%)", - ["The percentage of your latency to subtract from the end of a channel duration to optimize cast time while hopefully not losing any ticks"] = "为优化施法时间,从引导结束时序中扣除延迟的百分比(避免丢失伤害周期)", - - ["Queued Spell Display Options"] = "队列法术显示选项", - ["Options for displaying an icon for the queued spell"] = "队列中法术图标的显示设置", - - ["Display queued spell icon"] = "显示队列法术图标", - ["Whether to display an icon of the queued spell"] = "是否显示队列中法术的图标", - - ["Icon size"] = "图标尺寸", - ["Change the spell icon size"] = "修改法术图标大小", - - ["Allow dragging"] = "允许拖动", - ["Whether to allow interaction with the queued spell icon so you can move it around"] = "是否允许通过拖动交互调整队列法术图标位置", - - ["Reset Position"] = "重置位置", - ["Reset the position of the queued spell icon"] = "重置队列法术图标位置", - - ["Show/Hide for positioning"] = "显示/隐藏(用于定位)", - ["Test the queued spell icon and position it to your liking"] = "测试队列法术图标位置,按需调整", - - ["Prevent Right Click Target Change"] = "阻止右键切换目标", - ["Whether to prevent right-clicking from changing your current target when in combat. If you don't have a target right click will still change your target even with this on. This is mainly to prevent accidentally changing targets in combat when trying to adjust your camera."] = "战斗中右键点击是否不改变当前目标(无目标时仍可切换)。主要用于调整镜头时避免误切目标。", - - ["Nameplate Distance"] = "姓名板显示距离", - ["The distance in yards to show nameplates"] = "显示姓名板的最大距离(码)", - - ["Spam Protection"] = "防连点保护", - ["Whether to enable spam protection functionality that blocks spamming spells while waiting for the server to respond to your initial cast due to issues spamming can cause"] = "是否启用防连点保护功能,避免在等待服务器响应期间连点施法导致的问题", - - ["Prevent Right Click PvP Attack"] = "阻止右键PvP攻击", - ["Whether to prevent right-clicking on PvP flagged players to avoid accidental PvP attacks"] = "是否防止右键点击PvP标记玩家以避免误触发PvP攻击", - - ["Prevent Mounting When Buff Capped"] = "Buff满时阻止上坐骑", - ["Whether to prevent mounting when you have 32 buffs (buff capped) and are not already mounted. This prevents the issue where you mount but cannot dismount because the mount aura fails to apply due to the buff cap. When blocked, displays an error message."] = "当已有32个增益(Buff已满)且未在坐骑状态时,是否阻止上坐骑,以避免坐骑光环因Buff上限无法施加导致无法下马的问题。被阻止时会显示错误提示。", - - ["Enable Enhanced Tooltips"] = "启用增强工具提示", - ["Whether to enable nampower's tooltip additions such as spell proc chance, ICD, and item cooldown text."] = "是否启用 nampower 的工具提示增强内容,例如法术触发几率、内置冷却时间(ICD)和物品冷却文本。", - - ["Enable Aura Cast Events"] = "启用光环施放事件", - ["Whether to enable AURA_CAST_ON_SELF and AURA_CAST_ON_OTHER events."] = "是否启用 AURA_CAST_ON_SELF 和 AURA_CAST_ON_OTHER 事件。", - - ["Enable Auto Attack Events"] = "启用自动攻击事件", - ["Whether to enable AUTO_ATTACK_SELF and AUTO_ATTACK_OTHER events."] = "是否启用 AUTO_ATTACK_SELF 和 AUTO_ATTACK_OTHER 事件。", - - ["Enable Spell Start Events"] = "启用法术开始事件", - ["Whether to enable SPELL_START_SELF and SPELL_START_OTHER events."] = "是否启用 SPELL_START_SELF 和 SPELL_START_OTHER 事件。", - - ["Enable Spell Go Events"] = "启用法术释放事件", - ["Whether to enable SPELL_GO_SELF and SPELL_GO_OTHER events."] = "是否启用 SPELL_GO_SELF 和 SPELL_GO_OTHER 事件。", - - ["Enable Spell Heal Events"] = "启用法术治疗事件", - ["Whether to enable SPELL_HEAL_BY_SELF, SPELL_HEAL_BY_OTHER, and SPELL_HEAL_ON_SELF events."] = "是否启用 SPELL_HEAL_BY_SELF、SPELL_HEAL_BY_OTHER 和 SPELL_HEAL_ON_SELF 事件。", - - ["Enable Spell Energize Events"] = "启用法术回能事件", - ["Whether to enable SPELL_ENERGIZE_BY_SELF, SPELL_ENERGIZE_BY_OTHER, and SPELL_ENERGIZE_ON_SELF events."] = "是否启用 SPELL_ENERGIZE_BY_SELF、SPELL_ENERGIZE_BY_OTHER 和 SPELL_ENERGIZE_ON_SELF 事件。", - - ["Unit Event Filters"] = "单位事件过滤器", - ["Controls which unit identifiers trigger unit events (UNIT_HEALTH, UNIT_COMBAT, etc.). In the base game the same event can fire multiple times for the same unit, once per identifying string (e.g. 'party1', 'raid1', 'mouseover'). Disabling unused identifiers reduces redundant event calls. Note: 'player', 'target', and 'pet' (your own pet) always trigger regardless of these settings, as they are critical."] = "控制哪些单位标识符触发单位事件(UNIT_HEALTH、UNIT_COMBAT 等)。在原版游戏中,同一单位可能因多个标识符(如 'party1'、'raid1'、'mouseover')重复触发同一事件。禁用不需要的标识符可减少冗余事件调用。注意:'player'(自身)、'target'(目标)和 'pet'(自己的宠物)始终会触发,不受此处设置影响,因为它们是关键标识符。", - - ["Enable Pet Unit Events"] = "启用宠物单位事件", - ["Whether to fire unit events (UNIT_HEALTH, UNIT_COMBAT, etc.) for party and raid pet identifiers ('party1pet', 'raid1pet', etc.). Party pets additionally require Enable Party Unit Events to be on; raid pets additionally require Enable Raid Unit Events to be on. Your own pet ('pet') always fires events regardless of this setting."] = "是否为队伍和团队宠物标识符('party1pet'、'raid1pet' 等)触发单位事件(UNIT_HEALTH、UNIT_COMBAT 等)。队伍宠物还需同时开启「启用队伍单位事件」;团队宠物还需同时开启「启用团队单位事件」。自己的宠物('pet')始终触发事件,不受此设置影响。", - - ["Enable Party Unit Events"] = "启用队伍单位事件", - ["Whether to fire unit events (UNIT_HEALTH, UNIT_COMBAT, etc.) for party member identifiers ('party1', 'party2', 'party3', 'party4'). Also required alongside Enable Pet Unit Events for party pet identifiers to fire."] = "是否为队伍成员标识符('party1'、'party2'、'party3'、'party4')触发单位事件(UNIT_HEALTH、UNIT_COMBAT 等)。同时也是队伍宠物标识符触发的必要条件(需与「启用宠物单位事件」共同开启)。", - - ["Enable Raid Unit Events"] = "启用团队单位事件", - ["Whether to fire unit events (UNIT_HEALTH, UNIT_COMBAT, etc.) for raid member identifiers ('raid1' through 'raid40'). Also required alongside Enable Pet Unit Events for raid pet identifiers to fire."] = "是否为团队成员标识符('raid1' 至 'raid40')触发单位事件(UNIT_HEALTH、UNIT_COMBAT 等)。同时也是团队宠物标识符触发的必要条件(需与「启用宠物单位事件」共同开启)。", - - ["Enable Mouseover Unit Events"] = "启用鼠标悬停单位事件", - ["Whether to fire unit events (UNIT_HEALTH, UNIT_COMBAT, etc.) for the 'mouseover' unit identifier."] = "是否为 'mouseover'(鼠标悬停)单位标识符触发单位事件(UNIT_HEALTH、UNIT_COMBAT 等)。", - - ["Enable GUID Unit Events"] = "启用GUID单位事件", - ["Whether to fire unit events (UNIT_HEALTH, UNIT_MANA, UNIT_AURA, etc.) using the raw GUID as the unit token, mirroring SuperWoW behavior. Fires for every unit the client tracks — not just named tokens like 'player', 'party1', 'raid1' — which can cause significant event spam in raids, BGs, and crowded zones. Older addons (e.g. pfUI) written for standard named tokens may have performance issues receiving GUID-based events. Addons needing GUID tracking (e.g. Automarker, Cursive) should use the new dedicated UNIT_HEALTH_GUID, UNIT_MANA_GUID, etc. events instead, allowing this to be safely disabled."] = "是否使用原始 GUID 作为单位标识符触发单位事件(UNIT_HEALTH、UNIT_MANA、UNIT_AURA 等),模拟 SuperWoW 行为。此功能会对客户端跟踪的所有单位触发事件——不仅限于 'player'、'party1'、'raid1' 等命名标识符——在团队、战场和人口密集区域可能产生大量事件。为标准命名标识符设计的旧版插件(如 pfUI)在收到 GUID 事件时可能出现性能问题。需要 GUID 跟踪的插件(如 Automarker、Cursive)应改用专用的 UNIT_HEALTH_GUID、UNIT_MANA_GUID 等事件,届时可安全禁用此选项。", - - ["Enable GUID Unit Event Filtering"] = "启用GUID单位事件过滤", - ["When enabled, suppresses high-frequency GUID events that cause spam in older addons — specifically UNIT_AURA, UNIT_HEALTH, UNIT_MANA, and similar events below UNIT_COMBAT, plus UNIT_NAME_UPDATE, UNIT_PORTRAIT_UPDATE, UNIT_INVENTORY_CHANGED, and PLAYER_GUILD_UPDATE. UNIT_COMBAT_GUID and other less frequent GUID events are still fired. Has no effect if Enable GUID Unit Events is disabled. This is a direct replacement for the 'Filter GUID Events' option in PerfBoost."] = "启用后,将屏蔽对旧版插件造成刷屏的高频 GUID 事件——具体包括 UNIT_COMBAT 以下的事件(如 UNIT_AURA、UNIT_HEALTH、UNIT_MANA 等),以及 UNIT_NAME_UPDATE、UNIT_PORTRAIT_UPDATE、UNIT_INVENTORY_CHANGED 和 PLAYER_GUILD_UPDATE。UNIT_COMBAT_GUID 及其他低频 GUID 事件仍会正常触发。若已禁用「启用GUID单位事件」,则此设置无效。此选项直接替代 PerfBoost 中的「过滤GUID事件」功能。", - - ["Preserve Greater Demon Autocast"] = "保留大型恶魔自动施法", - ["Whether to remember and restore Felguard/Doomguard autocast preferences when swapping or resummoning those greater demons."] = "切换或重新召唤地狱守卫/末日守卫时,是否记忆并恢复其自动施法设置。", - } -end) +local L = AceLibrary("AceLocale-2.2"):new("NampowerSettings") + +L:RegisterTranslations("enUS", function() + return { + ["|cffffcc00Nampower v2|cffffaaaa not present hiding settings."] = true, + + ["update available"] = "|cffffcc00Nampower update v2.20.0 available.|cffffcc00 Some settings may be hidden until you update. Replace your existing nampower.dll with the latest from https://gitea.com/avitasia/nampower/releases", + + ["Superwow required to display queued spells."] = true, + + ["Enable Per Character Settings"] = true, + ["Whether to use per character settings for all of the NP_ settings. This will cause settings saved in your character's NampowerSettings.lua to override any global settings in Config.wtf."] = true, + + ["Queue Cast Time Spells"] = true, + ["Whether to enable spell queuing for spells with a cast time"] = true, + + ["Queue Instant Spells"] = true, + ["Whether to enable spell queuing for instant cast spells tied to gcd"] = true, + + ["Queue On Swing Spells"] = true, + ["Whether to enable on swing spell queuing"] = true, + + ["Queue Channeling Spells"] = true, + ["Whether to enable channeling spell queuing"] = true, + + ["Queue Targeting Spells"] = true, + ["Whether to enable terrain targeting spell queuing"] = true, + + ["Queue Spells Coming Off Cooldown"] = true, + ["Whether to enable spell queuing for spells coming off cooldown"] = true, + + ["Queue Windows"] = true, + ["How much time in ms you have before a cast ends to queue different types of spells"] = true, + + ["Spell Queue Window (ms)"] = true, + ["The window in ms before a cast finishes where the next will get queued"] = true, + + ["On Swing Buffer Cooldown (ms)"] = true, + ["The cooldown time in ms after an on swing spell before you can queue on swing spells"] = true, + + ["Channel Queue Window (ms)"] = true, + ["The window in ms before a channel finishes where the next will get queued"] = true, + + ["Targeting Queue Window (ms)"] = true, + ["The window in ms before a terrain targeting spell finishes where the next will get queued"] = true, + + ["Cooldown Queue Window (ms)"] = true, + ["The window in ms before a spell coming off cooldown finishes where the next will get queued"] = true, + + ["Cast Options"] = true, + ["Options for controlling casting behavior"] = true, + + ["QOL Options"] = true, + ["Quality of life options to prevent common issues"] = true, + ["Chat Bubbles"] = true, + ["Chat bubble options"] = true, + ["Chat Bubbles (Say/Yell)"] = true, + ["Whether to enable chat bubbles for /say and /yell messages."] = true, + ["Chat Bubbles (Party)"] = true, + ["Whether to enable chat bubbles for /party messages."] = true, + ["Chat Bubbles (Whisper)"] = true, + ["Whether to enable chat bubbles for /whisper messages."] = true, + ["Chat Bubbles (Raid)"] = true, + ["Whether to enable chat bubbles for /raid messages."] = true, + ["Chat Bubbles (Battleground)"] = true, + ["Whether to enable chat bubbles for battleground messages."] = true, + ["Chat Bubble Distance"] = true, + ["The distance in yards to show chat bubbles"] = true, + + ["Advanced options"] = true, + ["Collection of various advanced options"] = true, + ["Spell Events"] = true, + ["Controls optional spell and combat event CVars."] = true, + + ["Double Cast to End Channel Early"] = true, + ["Whether to allow double casting a spell within 350ms to end channeling on the next tick. Takes into account your ChannelLatencyReductionPercentage."] = true, + + ["Quickcast Targeting Spells on Double Cast"] = true, + ["Allows casting targeting spells by attempting to cast them twice as opposed to the default client behavior which cancels the targeting indicator"] = true, + + ["Interrupt Channels Outside Queue Window"] = true, + ["Whether to allow interrupting channels (the original client behavior) when trying to cast a spell outside the channeling queue window"] = true, + + ["Retry Server Rejected Spells"] = true, + ["Whether to retry spells that are rejected by the server for these reasons: SPELL_FAILED_ITEM_NOT_READY, SPELL_FAILED_NOT_READY, SPELL_FAILED_SPELL_IN_PROGRESS"] = true, + + ["Quickcast Targeting Spells"] = true, + ["Whether to enable quick casting for ALL spells with terrain targeting"] = true, + + ["Replace Matching Non GCD Category"] = true, + ["Whether to replace any queued non gcd spell when a new non gcd spell with the same non zero StartRecoveryCategory is cast. Most trinkets and spells are category 0 which are ignored by this setting. The primary use case is to switch which potion you have queued."] = true, + + ["Optimize Buffer Using Packet Timings"] = true, + ["Whether to attempt to optimize your buffer using your latency and server packet timings"] = true, + + ["Minimum Buffer Time (ms)"] = true, + ["The minimum buffer delay in ms added to each cast"] = true, + + ["Non GCD Buffer Time (ms)"] = true, + ["The buffer delay in ms added AFTER each cast that is not tied to the gcd"] = true, + + ["Max Buffer Increase (ms)"] = true, + ["The maximum amount of time in ms to increase the buffer by when the server rejects a cast"] = true, + + ["Channel Latency Reduction (%)"] = true, + ["The percentage of your latency to subtract from the end of a channel duration to optimize cast time while hopefully not losing any ticks"] = true, + + ["Queued Spell Display Options"] = true, + ["Options for displaying an icon for the queued spell"] = true, + + ["Display queued spell icon"] = true, + ["Whether to display an icon of the queued spell"] = true, + + ["Icon size"] = true, + ["Change the spell icon size"] = true, + + ["Allow dragging"] = true, + ["Whether to allow interaction with the queued spell icon so you can move it around"] = true, + + ["Reset Position"] = true, + ["Reset the position of the queued spell icon"] = true, + + ["Show/Hide for positioning"] = true, + ["Test the queued spell icon and position it to your liking"] = true, + + ["Prevent Right Click Target Change"] = true, + ["Whether to prevent right-clicking from changing your current target when in combat. If you don't have a target right click will still change your target even with this on. This is mainly to prevent accidentally changing targets in combat when trying to adjust your camera."] = true, + + ["Nameplate Distance"] = true, + ["The distance in yards to show nameplates"] = true, + + ["Spam Protection"] = true, + ["Whether to enable spam protection functionality that blocks spamming spells while waiting for the server to respond to your initial cast due to issues spamming can cause"] = true, + + ["Prevent Right Click PvP Attack"] = true, + ["Whether to prevent right-clicking on PvP flagged players to avoid accidental PvP attacks"] = true, + + ["Prevent Mounting When Buff Capped"] = true, + ["Whether to prevent mounting when you have 32 buffs (buff capped) and are not already mounted. This prevents the issue where you mount but cannot dismount because the mount aura fails to apply due to the buff cap. When blocked, displays an error message."] = true, + + ["Enable Enhanced Tooltips"] = true, + ["Whether to enable nampower's tooltip additions such as spell proc chance, ICD, and item cooldown text."] = true, + + ["Enable Aura Cast Events"] = true, + ["Whether to enable AURA_CAST_ON_SELF and AURA_CAST_ON_OTHER events."] = true, + + ["Enable Auto Attack Events"] = true, + ["Whether to enable AUTO_ATTACK_SELF and AUTO_ATTACK_OTHER events."] = true, + + ["Enable Spell Start Events"] = true, + ["Whether to enable SPELL_START_SELF and SPELL_START_OTHER events."] = true, + + ["Enable Spell Go Events"] = true, + ["Whether to enable SPELL_GO_SELF and SPELL_GO_OTHER events."] = true, + + ["Enable Spell Heal Events"] = true, + ["Whether to enable SPELL_HEAL_BY_SELF, SPELL_HEAL_BY_OTHER, and SPELL_HEAL_ON_SELF events."] = true, + + ["Enable Spell Energize Events"] = true, + ["Whether to enable SPELL_ENERGIZE_BY_SELF, SPELL_ENERGIZE_BY_OTHER, and SPELL_ENERGIZE_ON_SELF events."] = true, + + ["Unit Event Filters"] = true, + ["Controls which unit identifiers trigger unit events (UNIT_HEALTH, UNIT_COMBAT, etc.). In the base game the same event can fire multiple times for the same unit, once per identifying string (e.g. 'party1', 'raid1', 'mouseover'). Disabling unused identifiers reduces redundant event calls. Note: 'player', 'target', and 'pet' (your own pet) always trigger regardless of these settings, as they are critical."] = true, + + ["Enable Pet Unit Events"] = true, + ["Whether to fire unit events (UNIT_HEALTH, UNIT_COMBAT, etc.) for party and raid pet identifiers ('party1pet', 'raid1pet', etc.). Party pets additionally require Enable Party Unit Events to be on; raid pets additionally require Enable Raid Unit Events to be on. Your own pet ('pet') always fires events regardless of this setting."] = true, + + ["Enable Party Unit Events"] = true, + ["Whether to fire unit events (UNIT_HEALTH, UNIT_COMBAT, etc.) for party member identifiers ('party1', 'party2', 'party3', 'party4'). Also required alongside Enable Pet Unit Events for party pet identifiers to fire."] = true, + + ["Enable Raid Unit Events"] = true, + ["Whether to fire unit events (UNIT_HEALTH, UNIT_COMBAT, etc.) for raid member identifiers ('raid1' through 'raid40'). Also required alongside Enable Pet Unit Events for raid pet identifiers to fire."] = true, + + ["Enable Mouseover Unit Events"] = true, + ["Whether to fire unit events (UNIT_HEALTH, UNIT_COMBAT, etc.) for the 'mouseover' unit identifier."] = true, + + ["Enable GUID Unit Events"] = true, + ["Whether to fire unit events (UNIT_HEALTH, UNIT_MANA, UNIT_AURA, etc.) using the raw GUID as the unit token, mirroring SuperWoW behavior. Fires for every unit the client tracks — not just named tokens like 'player', 'party1', 'raid1' — which can cause significant event spam in raids, BGs, and crowded zones. Older addons (e.g. pfUI) written for standard named tokens may have performance issues receiving GUID-based events. Addons needing GUID tracking (e.g. Automarker, Cursive) should use the new dedicated UNIT_HEALTH_GUID, UNIT_MANA_GUID, etc. events instead, allowing this to be safely disabled."] = true, + + ["Enable GUID Unit Event Filtering"] = true, + ["When enabled, suppresses high-frequency GUID events that cause spam in older addons — specifically UNIT_AURA, UNIT_HEALTH, UNIT_MANA, and similar events below UNIT_COMBAT, plus UNIT_NAME_UPDATE, UNIT_PORTRAIT_UPDATE, UNIT_INVENTORY_CHANGED, and PLAYER_GUILD_UPDATE. UNIT_COMBAT_GUID and other less frequent GUID events are still fired. Has no effect if Enable GUID Unit Events is disabled. This is a direct replacement for the 'Filter GUID Events' option in PerfBoost."] = true, + + ["Preserve Greater Demon Autocast"] = true, + ["Whether to remember and restore Felguard/Doomguard autocast preferences when swapping or resummoning those greater demons."] = true, + } +end) + +L:RegisterTranslations("zhCN", function() + return { + ["|cffffcc00Nampower v2|cffffaaaa not present hiding settings."] = "|cffffcc00Nampower v2|cffffaaaa 未安装,隐藏设置项。", + + ["update available"] = "|cffffcc00Nampower v2.20.0 更新可用。|cffffcc00 更新前部分设置可能隐藏。请从 https://gitea.com/avitasia/nampower/releases 下载最新 nampower.dll 替换当前版本。", + + ["Superwow required to display queued spells."] = "需 Superwow 插件显示队列中法术。", + + ["Enable Per Character Settings"] = "启用角色独立设置", + ["Whether to use per character settings for all of the NP_ settings. This will cause settings saved in your character's NampowerSettings.lua to override any global settings in Config.wtf."] = "是否为所有 NP_ 设置启用角色独立配置。启用后,角色 NampowerSettings.lua 中的设置将覆盖 Config.wtf 中的全局设置。", + + ["Queue Cast Time Spells"] = "队列施法时间法术", + ["Whether to enable spell queuing for spells with a cast time"] = "是否对施法时间类法术启用队列功能", + + ["Queue Instant Spells"] = "队列瞬发法术", + ["Whether to enable spell queuing for instant cast spells tied to gcd"] = "是否对涉及公共冷却的瞬发法术启用队列功能", + + ["Queue On Swing Spells"] = "队列特殊攻击法术", + ["Whether to enable on swing spell queuing"] = "是否对特殊攻击类法术(如战士压制)启用队列功能", + + ["Queue Channeling Spells"] = "队列引导法术", + ["Whether to enable channeling spell queuing"] = "是否对引导类法术(如暴风雪)启用队列功能", + + ["Queue Targeting Spells"] = "队列目标区域法术", + ["Whether to enable terrain targeting spell queuing"] = "是否对目标区域类法术(如暴风雪)启用队列功能", + + ["Queue Spells Coming Off Cooldown"] = "队列冷却结束法术", + ["Whether to enable spell queuing for spells coming off cooldown"] = "是否对即将结束冷却的法术启用队列功能", + + ["Queue Windows"] = "队列窗口设置", + ["How much time in ms you have before a cast ends to queue different types of spells"] = "各种法术类型在施法结束前多少毫秒(ms)开始进入队列", + + ["Spell Queue Window (ms)"] = "法术队列窗口(ms)", + ["The window in ms before a cast finishes where the next will get queued"] = "当前施法结束前多少毫秒(ms)可将下一个法术加入队列", + + ["On Swing Buffer Cooldown (ms)"] = "特殊攻击缓冲冷却(ms)", + ["The cooldown time in ms after an on swing spell before you can queue on swing spells"] = "特殊攻击法术施放后,多少毫秒(ms)内无法再次将同类法术加入队列", + + ["Channel Queue Window (ms)"] = "引导法术队列窗口(ms)", + ["The window in ms before a channel finishes where the next will get queued"] = "引导法术结束前多少毫秒(ms)可将下一个法术加入队列", + + ["Targeting Queue Window (ms)"] = "目标区域法术队列窗口(ms)", + ["The window in ms before a terrain targeting spell finishes where the next will get queued"] = "目标区域法术结束前多少毫秒(ms)可将下一个法术加入队列", + + ["Cooldown Queue Window (ms)"] = "冷却结束队列窗口(ms)", + ["The window in ms before a spell coming off cooldown finishes where the next will get queued"] = "法术冷却结束前多少毫秒(ms)可将该法术加入队列", + + ["Cast Options"] = "施法选项", + ["Options for controlling casting behavior"] = "控制施法行为的选项", + + ["QOL Options"] = "便利性选项", + ["Quality of life options to prevent common issues"] = "用于防止常见错误的便利性选项", + ["Chat Bubbles"] = "聊天气泡", + ["Chat bubble options"] = "聊天气泡相关选项", + ["Chat Bubbles (Say/Yell)"] = "聊天气泡(说话/大喊)", + ["Whether to enable chat bubbles for /say and /yell messages."] = "是否为 /say 与 /yell 消息启用聊天气泡。", + ["Chat Bubbles (Party)"] = "聊天气泡(队伍)", + ["Whether to enable chat bubbles for /party messages."] = "是否为 /party 消息启用聊天气泡。", + ["Chat Bubbles (Whisper)"] = "聊天气泡(密语)", + ["Whether to enable chat bubbles for /whisper messages."] = "是否为 /whisper 消息启用聊天气泡。", + ["Chat Bubbles (Raid)"] = "聊天气泡(团队)", + ["Whether to enable chat bubbles for /raid messages."] = "是否为 /raid 消息启用聊天气泡。", + ["Chat Bubbles (Battleground)"] = "聊天气泡(战场)", + ["Whether to enable chat bubbles for battleground messages."] = "是否为战场消息启用聊天气泡。", + ["Chat Bubble Distance"] = "聊天气泡距离", + ["The distance in yards to show chat bubbles"] = "显示聊天气泡的最大距离(码)", + + ["Advanced options"] = "高级选项", + ["Collection of various advanced options"] = "各类高级选项集合", + ["Spell Events"] = "法术事件", + ["Controls optional spell and combat event CVars."] = "控制可选的法术和战斗事件 CVar。", + + ["Double Cast to End Channel Early"] = "双重施法提前结束引导", + ["Whether to allow double casting a spell within 350ms to end channeling on the next tick. Takes into account your ChannelLatencyReductionPercentage."] = "是否允许350毫秒内双重施法以在下一个伤害周期提前结束引导。受引导延迟削减比例影响。", + + ["Quickcast Targeting Spells on Double Cast"] = "双重施法快速施放目标区域法术", + ["Allows casting targeting spells by attempting to cast them twice as opposed to the default client behavior which cancels the targeting indicator"] = "允许通过双次尝试施法来释放目标区域法术,而非默认客户端行为(取消目标指示器)", + + ["Interrupt Channels Outside Queue Window"] = "队列窗口外允许打断引导", + ["Whether to allow interrupting channels (the original client behavior) when trying to cast a spell outside the channeling queue window"] = "在引导法术队列窗口外尝试施法时,是否允许打断引导(默认客户端行为)", + + ["Retry Server Rejected Spells"] = "重试服务器拒绝的法术", + ["Whether to retry spells that are rejected by the server for these reasons: SPELL_FAILED_ITEM_NOT_READY, SPELL_FAILED_NOT_READY, SPELL_FAILED_SPELL_IN_PROGRESS"] = "是否对因以下原因被服务器拒绝的法术进行重试:未准备就绪、未冷却、已有法术施放中", + + ["Quickcast Targeting Spells"] = "快速施放目标区域法术", + ["Whether to enable quick casting for ALL spells with terrain targeting"] = "是否为所有目标区域法术启用快速施放功能", + + ["Replace Matching Non GCD Category"] = "替换同类型非公共冷却法术", + ["Whether to replace any queued non gcd spell when a new non gcd spell with the same non zero StartRecoveryCategory is cast. Most trinkets and spells are category 0 which are ignored by this setting. The primary use case is to switch which potion you have queued."] = "当施放新的非公共冷却法术且其启动类别相同时,是否替换队列中的同类法术。饰品和多数法术属类别0(不受影响),主要用于替换已队列的药水。", + + ["Optimize Buffer Using Packet Timings"] = "基于封包时间优化缓冲", + ["Whether to attempt to optimize your buffer using your latency and server packet timings"] = "是否根据延迟和服务器封包时间优化法术缓冲机制", + + ["Minimum Buffer Time (ms)"] = "最低缓冲时间(ms)", + ["The minimum buffer delay in ms added to each cast"] = "为每次施法添加的最小缓冲延迟(毫秒)", + + ["Non GCD Buffer Time (ms)"] = "非公共冷却缓冲时间(ms)", + ["The buffer delay in ms added AFTER each cast that is not tied to the gcd"] = "在非公共冷却法术施放后添加的缓冲延迟(毫秒)", + + ["Max Buffer Increase (ms)"] = "最大缓冲增加量(ms)", + ["The maximum amount of time in ms to increase the buffer by when the server rejects a cast"] = "当法术被服务器拒绝时,缓冲时间可增加的最大毫秒数", + + ["Channel Latency Reduction (%)"] = "引导延迟削减比例(%)", + ["The percentage of your latency to subtract from the end of a channel duration to optimize cast time while hopefully not losing any ticks"] = "为优化施法时间,从引导结束时序中扣除延迟的百分比(避免丢失伤害周期)", + + ["Queued Spell Display Options"] = "队列法术显示选项", + ["Options for displaying an icon for the queued spell"] = "队列中法术图标的显示设置", + + ["Display queued spell icon"] = "显示队列法术图标", + ["Whether to display an icon of the queued spell"] = "是否显示队列中法术的图标", + + ["Icon size"] = "图标尺寸", + ["Change the spell icon size"] = "修改法术图标大小", + + ["Allow dragging"] = "允许拖动", + ["Whether to allow interaction with the queued spell icon so you can move it around"] = "是否允许通过拖动交互调整队列法术图标位置", + + ["Reset Position"] = "重置位置", + ["Reset the position of the queued spell icon"] = "重置队列法术图标位置", + + ["Show/Hide for positioning"] = "显示/隐藏(用于定位)", + ["Test the queued spell icon and position it to your liking"] = "测试队列法术图标位置,按需调整", + + ["Prevent Right Click Target Change"] = "阻止右键切换目标", + ["Whether to prevent right-clicking from changing your current target when in combat. If you don't have a target right click will still change your target even with this on. This is mainly to prevent accidentally changing targets in combat when trying to adjust your camera."] = "战斗中右键点击是否不改变当前目标(无目标时仍可切换)。主要用于调整镜头时避免误切目标。", + + ["Nameplate Distance"] = "姓名板显示距离", + ["The distance in yards to show nameplates"] = "显示姓名板的最大距离(码)", + + ["Spam Protection"] = "防连点保护", + ["Whether to enable spam protection functionality that blocks spamming spells while waiting for the server to respond to your initial cast due to issues spamming can cause"] = "是否启用防连点保护功能,避免在等待服务器响应期间连点施法导致的问题", + + ["Prevent Right Click PvP Attack"] = "阻止右键PvP攻击", + ["Whether to prevent right-clicking on PvP flagged players to avoid accidental PvP attacks"] = "是否防止右键点击PvP标记玩家以避免误触发PvP攻击", + + ["Prevent Mounting When Buff Capped"] = "Buff满时阻止上坐骑", + ["Whether to prevent mounting when you have 32 buffs (buff capped) and are not already mounted. This prevents the issue where you mount but cannot dismount because the mount aura fails to apply due to the buff cap. When blocked, displays an error message."] = "当已有32个增益(Buff已满)且未在坐骑状态时,是否阻止上坐骑,以避免坐骑光环因Buff上限无法施加导致无法下马的问题。被阻止时会显示错误提示。", + + ["Enable Enhanced Tooltips"] = "启用增强工具提示", + ["Whether to enable nampower's tooltip additions such as spell proc chance, ICD, and item cooldown text."] = "是否启用 nampower 的工具提示增强内容,例如法术触发几率、内置冷却时间(ICD)和物品冷却文本。", + + ["Enable Aura Cast Events"] = "启用光环施放事件", + ["Whether to enable AURA_CAST_ON_SELF and AURA_CAST_ON_OTHER events."] = "是否启用 AURA_CAST_ON_SELF 和 AURA_CAST_ON_OTHER 事件。", + + ["Enable Auto Attack Events"] = "启用自动攻击事件", + ["Whether to enable AUTO_ATTACK_SELF and AUTO_ATTACK_OTHER events."] = "是否启用 AUTO_ATTACK_SELF 和 AUTO_ATTACK_OTHER 事件。", + + ["Enable Spell Start Events"] = "启用法术开始事件", + ["Whether to enable SPELL_START_SELF and SPELL_START_OTHER events."] = "是否启用 SPELL_START_SELF 和 SPELL_START_OTHER 事件。", + + ["Enable Spell Go Events"] = "启用法术释放事件", + ["Whether to enable SPELL_GO_SELF and SPELL_GO_OTHER events."] = "是否启用 SPELL_GO_SELF 和 SPELL_GO_OTHER 事件。", + + ["Enable Spell Heal Events"] = "启用法术治疗事件", + ["Whether to enable SPELL_HEAL_BY_SELF, SPELL_HEAL_BY_OTHER, and SPELL_HEAL_ON_SELF events."] = "是否启用 SPELL_HEAL_BY_SELF、SPELL_HEAL_BY_OTHER 和 SPELL_HEAL_ON_SELF 事件。", + + ["Enable Spell Energize Events"] = "启用法术回能事件", + ["Whether to enable SPELL_ENERGIZE_BY_SELF, SPELL_ENERGIZE_BY_OTHER, and SPELL_ENERGIZE_ON_SELF events."] = "是否启用 SPELL_ENERGIZE_BY_SELF、SPELL_ENERGIZE_BY_OTHER 和 SPELL_ENERGIZE_ON_SELF 事件。", + + ["Unit Event Filters"] = "单位事件过滤器", + ["Controls which unit identifiers trigger unit events (UNIT_HEALTH, UNIT_COMBAT, etc.). In the base game the same event can fire multiple times for the same unit, once per identifying string (e.g. 'party1', 'raid1', 'mouseover'). Disabling unused identifiers reduces redundant event calls. Note: 'player', 'target', and 'pet' (your own pet) always trigger regardless of these settings, as they are critical."] = "控制哪些单位标识符触发单位事件(UNIT_HEALTH、UNIT_COMBAT 等)。在原版游戏中,同一单位可能因多个标识符(如 'party1'、'raid1'、'mouseover')重复触发同一事件。禁用不需要的标识符可减少冗余事件调用。注意:'player'(自身)、'target'(目标)和 'pet'(自己的宠物)始终会触发,不受此处设置影响,因为它们是关键标识符。", + + ["Enable Pet Unit Events"] = "启用宠物单位事件", + ["Whether to fire unit events (UNIT_HEALTH, UNIT_COMBAT, etc.) for party and raid pet identifiers ('party1pet', 'raid1pet', etc.). Party pets additionally require Enable Party Unit Events to be on; raid pets additionally require Enable Raid Unit Events to be on. Your own pet ('pet') always fires events regardless of this setting."] = "是否为队伍和团队宠物标识符('party1pet'、'raid1pet' 等)触发单位事件(UNIT_HEALTH、UNIT_COMBAT 等)。队伍宠物还需同时开启「启用队伍单位事件」;团队宠物还需同时开启「启用团队单位事件」。自己的宠物('pet')始终触发事件,不受此设置影响。", + + ["Enable Party Unit Events"] = "启用队伍单位事件", + ["Whether to fire unit events (UNIT_HEALTH, UNIT_COMBAT, etc.) for party member identifiers ('party1', 'party2', 'party3', 'party4'). Also required alongside Enable Pet Unit Events for party pet identifiers to fire."] = "是否为队伍成员标识符('party1'、'party2'、'party3'、'party4')触发单位事件(UNIT_HEALTH、UNIT_COMBAT 等)。同时也是队伍宠物标识符触发的必要条件(需与「启用宠物单位事件」共同开启)。", + + ["Enable Raid Unit Events"] = "启用团队单位事件", + ["Whether to fire unit events (UNIT_HEALTH, UNIT_COMBAT, etc.) for raid member identifiers ('raid1' through 'raid40'). Also required alongside Enable Pet Unit Events for raid pet identifiers to fire."] = "是否为团队成员标识符('raid1' 至 'raid40')触发单位事件(UNIT_HEALTH、UNIT_COMBAT 等)。同时也是团队宠物标识符触发的必要条件(需与「启用宠物单位事件」共同开启)。", + + ["Enable Mouseover Unit Events"] = "启用鼠标悬停单位事件", + ["Whether to fire unit events (UNIT_HEALTH, UNIT_COMBAT, etc.) for the 'mouseover' unit identifier."] = "是否为 'mouseover'(鼠标悬停)单位标识符触发单位事件(UNIT_HEALTH、UNIT_COMBAT 等)。", + + ["Enable GUID Unit Events"] = "启用GUID单位事件", + ["Whether to fire unit events (UNIT_HEALTH, UNIT_MANA, UNIT_AURA, etc.) using the raw GUID as the unit token, mirroring SuperWoW behavior. Fires for every unit the client tracks — not just named tokens like 'player', 'party1', 'raid1' — which can cause significant event spam in raids, BGs, and crowded zones. Older addons (e.g. pfUI) written for standard named tokens may have performance issues receiving GUID-based events. Addons needing GUID tracking (e.g. Automarker, Cursive) should use the new dedicated UNIT_HEALTH_GUID, UNIT_MANA_GUID, etc. events instead, allowing this to be safely disabled."] = "是否使用原始 GUID 作为单位标识符触发单位事件(UNIT_HEALTH、UNIT_MANA、UNIT_AURA 等),模拟 SuperWoW 行为。此功能会对客户端跟踪的所有单位触发事件——不仅限于 'player'、'party1'、'raid1' 等命名标识符——在团队、战场和人口密集区域可能产生大量事件。为标准命名标识符设计的旧版插件(如 pfUI)在收到 GUID 事件时可能出现性能问题。需要 GUID 跟踪的插件(如 Automarker、Cursive)应改用专用的 UNIT_HEALTH_GUID、UNIT_MANA_GUID 等事件,届时可安全禁用此选项。", + + ["Enable GUID Unit Event Filtering"] = "启用GUID单位事件过滤", + ["When enabled, suppresses high-frequency GUID events that cause spam in older addons — specifically UNIT_AURA, UNIT_HEALTH, UNIT_MANA, and similar events below UNIT_COMBAT, plus UNIT_NAME_UPDATE, UNIT_PORTRAIT_UPDATE, UNIT_INVENTORY_CHANGED, and PLAYER_GUILD_UPDATE. UNIT_COMBAT_GUID and other less frequent GUID events are still fired. Has no effect if Enable GUID Unit Events is disabled. This is a direct replacement for the 'Filter GUID Events' option in PerfBoost."] = "启用后,将屏蔽对旧版插件造成刷屏的高频 GUID 事件——具体包括 UNIT_COMBAT 以下的事件(如 UNIT_AURA、UNIT_HEALTH、UNIT_MANA 等),以及 UNIT_NAME_UPDATE、UNIT_PORTRAIT_UPDATE、UNIT_INVENTORY_CHANGED 和 PLAYER_GUILD_UPDATE。UNIT_COMBAT_GUID 及其他低频 GUID 事件仍会正常触发。若已禁用「启用GUID单位事件」,则此设置无效。此选项直接替代 PerfBoost 中的「过滤GUID事件」功能。", + + ["Preserve Greater Demon Autocast"] = "保留大型恶魔自动施法", + ["Whether to remember and restore Felguard/Doomguard autocast preferences when swapping or resummoning those greater demons."] = "切换或重新召唤地狱守卫/末日守卫时,是否记忆并恢复其自动施法设置。", + } +end) diff --git a/Payload/Interface/Addons/nampowersettings/NampowerSettings.toc b/Payload/Interface/Addons/nampowersettings/NampowerSettings.toc index 0409e8f..1a8f015 100644 --- a/Payload/Interface/Addons/nampowersettings/NampowerSettings.toc +++ b/Payload/Interface/Addons/nampowersettings/NampowerSettings.toc @@ -1,27 +1,27 @@ -## Interface: 11200 -## Title: Nampower Settings -## Notes: the companion compatibility addon to the mod of the same name. -## Title-zhCN:|CFFEE7600[模组增强]|R |cff00ffffNampower设置|R|cffff1450[需Nampower模组] -## Notes-zhCN: Nampower模组配套的设置工具,能够根据自己的网络和需要设置该模组内部的各种参数。 -## SavedVariablesPerCharacter: NampowerSettingsDB -## X-Embeds: Ace2, FuBarPlugin-2.0, CompostLib, DewDropLib, TabletLib - -libs\AceLibrary\AceLibrary.lua - -libs\AceOO-2.0\AceOO-2.0.lua -libs\AceAddon-2.0\AceAddon-2.0.lua -libs\AceConsole-2.0\AceConsole-2.0.lua -libs\AceHook-2.1\AceHook-2.1.lua -libs\AceDB-2.0\AceDB-2.0.lua -libs\AceDebug-2.0\AceDebug-2.0.lua -libs\AceEvent-2.0\AceEvent-2.0.lua -libs\AceLocale-2.2\AceLocale-2.2.lua -libs\AceModuleCore-2.0\AceModuleCore-2.0.lua - -libs\Dewdrop\Dewdrop-2.0.lua -libs\Tablet\Tablet-2.0.lua -libs\FuBarPlugin\FuBarPlugin-2.0.lua - -Localization.lua -settings.lua -helper.lua +## Interface: 11200 +## Title: Nampower Settings +## Notes: the companion compatibility addon to the mod of the same name. +## Title-zhCN:|CFFEE7600[模组增强]|R |cff00ffffNampower设置|R|cffff1450[需Nampower模组] +## Notes-zhCN: Nampower模组配套的设置工具,能够根据自己的网络和需要设置该模组内部的各种参数。 +## SavedVariablesPerCharacter: NampowerSettingsDB +## X-Embeds: Ace2, FuBarPlugin-2.0, CompostLib, DewDropLib, TabletLib + +libs\AceLibrary\AceLibrary.lua + +libs\AceOO-2.0\AceOO-2.0.lua +libs\AceAddon-2.0\AceAddon-2.0.lua +libs\AceConsole-2.0\AceConsole-2.0.lua +libs\AceHook-2.1\AceHook-2.1.lua +libs\AceDB-2.0\AceDB-2.0.lua +libs\AceDebug-2.0\AceDebug-2.0.lua +libs\AceEvent-2.0\AceEvent-2.0.lua +libs\AceLocale-2.2\AceLocale-2.2.lua +libs\AceModuleCore-2.0\AceModuleCore-2.0.lua + +libs\Dewdrop\Dewdrop-2.0.lua +libs\Tablet\Tablet-2.0.lua +libs\FuBarPlugin\FuBarPlugin-2.0.lua + +Localization.lua +settings.lua +helper.lua diff --git a/Payload/Interface/Addons/nampowersettings/README.md b/Payload/Interface/Addons/nampowersettings/README.md deleted file mode 100644 index 7e09046..0000000 --- a/Payload/Interface/Addons/nampowersettings/README.md +++ /dev/null @@ -1,12 +0,0 @@ -### Nampower settings -See ~~https://gitea.com/avitasia/nampower~~ https://github.com/Emyrk/nampower for in game tooltip for description of each setting. -Access settings in game by right clicking the minimap icon. - -### Per Character settings -You can now use different nampower settings for each character. When you enable this option it will save all of your current nampower settings into -WTF\Account\YOUR_ACCOUNT\Nordanaar\YOUR_CHARACTER\SavedVariables\NampowerSettings.lua. Then every time the game loads the settings in that file will overwrite both the nampower defaults and whatever cvars were saved in your main Config.wtf. If you make changes to any settings while this option is enabled it will save to that character's settings file AS WELL AS the main Config.wtf. - -#### Queued spell icon display -If you have superwow there is an option (default off) to display an icon for the most recently queued spell (the mini fireball in the castbar). You can resize and position it anywhere. - -![img.png](img.png) diff --git a/Payload/Interface/Addons/nampowersettings/helper.lua b/Payload/Interface/Addons/nampowersettings/helper.lua index 19a1907..bb745a6 100644 --- a/Payload/Interface/Addons/nampowersettings/helper.lua +++ b/Payload/Interface/Addons/nampowersettings/helper.lua @@ -1,952 +1,952 @@ -if not Nampower then - return -end - -if not Nampower:HasMinimumVersion(2, 14, 0) then - return -end - -local function GetSpellMod(num) - local modifierTypes = { - [0] = "DAMAGE", - [1] = "DURATION", - [2] = "THREAT", - [3] = "ATTACK_POWER", - [4] = "CHARGES", - [5] = "RANGE", - [6] = "RADIUS", - [7] = "CRITICAL_CHANCE", - [8] = "ALL_EFFECTS", - [9] = "NOT_LOSE_CASTING_TIME", - [10] = "CASTING_TIME", - [11] = "COOLDOWN", - [12] = "SPEED", - [14] = "COST", - [15] = "CRIT_DAMAGE_BONUS", - [16] = "RESIST_MISS_CHANCE", - [17] = "JUMP_TARGETS", - [18] = "CHANCE_OF_SUCCESS", - [19] = "ACTIVATION_TIME", - [20] = "EFFECT_PAST_FIRST", - [21] = "CASTING_TIME_OLD", - [22] = "DOT", - [23] = "HASTE", - [24] = "SPELL_BONUS_DAMAGE", - [27] = "MULTIPLE_VALUE", - [28] = "RESIST_DISPEL_CHANCE" - } - return modifierTypes[num] or "UNKNOWN" -end - -function PrintTable(tbl, indent) - indent = indent or 0 - local prefix = string.rep(" ", indent) - - for k, v in pairs(tbl) do - if type(v) == "table" then - print(prefix .. tostring(k) .. ":") - PrintTable(v, indent + 1) - else - print(prefix .. tostring(k) .. ": " .. tostring(v)) - end - end -end - -if CombatLogAdd then - function PrintTableToCombatLog(tbl, indent) - indent = indent or 0 - local prefix = string.rep(" ", indent) - - for k, v in pairs(tbl) do - if type(v) == "table" then - CombatLogAdd(prefix .. tostring(k) .. ":") - PrintTableToCombatLog(v, indent + 1) - else - CombatLogAdd(prefix .. tostring(k) .. ": " .. tostring(v)) - end - end - end - - function LogUnitData(unit) - local data = GetUnitData(unit) - if data then - PrintTableToCombatLog(data) - else - print("No unit data available") - end - end - - function LogSpellData(spellId) - local data = GetSpellRec(spellId) - if data then - PrintTableToCombatLog(data) - else - print("No spell data available") - end - end -end - -function PrintBuffs(unit) - for i = 1, 32 do - local texture, stacks, spellId = UnitBuff(unit, i) - if not texture then - break - end - print(tostring(i) .. " " .. texture .. " " .. tostring(spellId)) - end -end - -function PrintAuras(unit) - local auras = GetUnitField(unit, "aura") - local applications = GetUnitField(unit, "auraApplications") - if not auras then return end - for i, auraId in ipairs(auras) do - local stacks = -1 - if applications then - local stacks = (applications[i] or 0) + 1 - end - if auraId > 0 then - print(tostring(i) .. " " .. tostring(auraId) .. " x" .. tostring(stacks)) - end - end -end - -function PrintUnitData(unit) - local data = GetUnitData(unit) - if data then - PrintTable(data) - else - print("No unit data available") - end -end - -function PrintSpellMods(spellId) - for i = 0, 28 do - local flatMod, percentMod, ret = GetSpellModifiers(spellId, i) - if ret > 0 then - print(GetSpellMod(i) .. " (" .. tostring(i) .. "): flat:" .. tostring(flatMod) .. " percent:" .. tostring(percentMod)) - end - end -end - -function PrintSpellData(spellId) - local data = GetSpellRec(spellId) - if data then - PrintTable(data) - else - print("No spell data available") - end -end - -if not Nampower:HasMinimumVersion(2, 16, 0) then - return -end - -function PrintItemLocation(itemNameOrId) - local bagIndex, slot = FindPlayerItemSlot(itemNameOrId) - print(tostring(bagIndex) .. " " .. tostring(slot)) -end - -function PrintEquippedItems() - local target = "player" - if UnitExists("target") then - target = "target" - end - local data = GetEquippedItems(target) - PrintTable(data) -end - -function LogEquippedItems() - local target = "player" - if UnitExists("target") then - target = "target" - end - local data = GetEquippedItems(target) - PrintTableToCombatLog(data) -end - -function PrintBagItems() - local data = GetBagItems() - PrintTable(data) -end - -function LogBagItems() - local data = GetBagItems() - PrintTableToCombatLog(data) -end - -function TestBagItems(bagIndex) - local items = GetBagItems(bagIndex) - local numItemsChecked = 0 - for slot, itemData in pairs(items) do - local itemLink = GetContainerItemLink(bagIndex, slot) - if not itemLink then - print(tostring(bagIndex) .. " " .. tostring(slot)) - PrintTable(itemData) - end - local _, _, itemId = strfind(itemLink, "(%d+):") - numItemsChecked = numItemsChecked + 1 - if (tostring(itemData.itemId) ~= itemId) then - print("Item mismatch at " .. tostring(bagIndex) .. " " .. tostring(slot) .. " " .. tostring(itemData.itemId) .. " " .. tostring(itemId)) - print(itemLink) - end - end - print("checked " .. tostring(numItemsChecked) .. " items") -end - -function TestAllBagItems() - local data = GetBagItems() - local numItemsChecked = 0 - for bagIndex, items in pairs(data) do - for slot, itemData in pairs(items) do - local itemLink = GetContainerItemLink(bagIndex, slot) - if not itemLink then - print(tostring(bagIndex) .. " " .. tostring(slot)) - PrintTable(itemData) - end - local _, _, itemId = strfind(itemLink, "(%d+):") - numItemsChecked = numItemsChecked + 1 - if (tostring(itemData.itemId) ~= itemId) then - print("Item mismatch at " .. tostring(bagIndex) .. " " .. tostring(slot) .. " " .. tostring(itemData.itemId) .. " " .. tostring(itemId)) - print(itemLink) - end - end - end - print("checked " .. tostring(numItemsChecked) .. " items") -end - -function TestTrinkets() - local data = GetTrinkets() - for index, trinketData in pairs(data) do - local bagIndex = trinketData.bagIndex - local slot = trinketData.slotIndex - local itemLink - if bagIndex then - itemLink = GetContainerItemLink(bagIndex, slot) - else - itemLink = GetInventoryItemLink("player", slot) - end - local _, _, itemId = strfind(itemLink, "(%d+):") - if (tostring(trinketData.itemId) ~= itemId) then - print("Trinket mismatch at " .. tostring(bagIndex) .. " " .. tostring(slot) .. " " .. tostring(itemData.itemId) .. " " .. tostring(itemId)) - print(itemLink) - end - end -end - -if not Nampower:HasMinimumVersion(2, 17, 0) then - return -end - -function PrintCastInfo() - local data = GetCastInfo() - if data then - PrintTable(data) - end -end - -function PrintSpellCooldown(spellId) - local data = GetSpellIdCooldown(spellId) - if data then - PrintTable(data) - end -end - -function PrintItemCooldown(itemId) - local data = GetItemIdCooldown(itemId) - if data then - PrintTable(data) - end -end - -function PrintTrinketCooldown(trinketId) - local data = GetTrinketCooldown(trinketId) - if data then - PrintTable(data) - end -end - -function PrintTrinkets() - local data = GetTrinkets(1) - if data then - PrintTable(data) - end -end - -if not Nampower:HasMinimumVersion(2, 24, 0) then - return -end - --- Auto Attack Event Constants -local HITINFO_NORMALSWING = 0 -local HITINFO_UNK0 = 1 -local HITINFO_AFFECTS_VICTIM = 2 -local HITINFO_LEFTSWING = 4 -local HITINFO_UNK3 = 8 -local HITINFO_MISS = 16 -local HITINFO_ABSORB = 32 -local HITINFO_RESIST = 64 -local HITINFO_CRITICALHIT = 128 -local HITINFO_UNK8 = 256 -local HITINFO_UNK9 = 8192 -local HITINFO_GLANCING = 16384 -local HITINFO_CRUSHING = 32768 -local HITINFO_NOACTION = 65536 -local HITINFO_SWINGNOHITSOUND = 524288 - -local VICTIMSTATE_UNAFFECTED = 0 -local VICTIMSTATE_NORMAL = 1 -local VICTIMSTATE_DODGE = 2 -local VICTIMSTATE_PARRY = 3 -local VICTIMSTATE_INTERRUPT = 4 -local VICTIMSTATE_BLOCKS = 5 -local VICTIMSTATE_EVADES = 6 -local VICTIMSTATE_IS_IMMUNE = 7 -local VICTIMSTATE_DEFLECTS = 8 - -local victimStateNames = { - [0] = "Unaffected", - [1] = "Normal", - [2] = "Dodged", - [3] = "Parried", - [4] = "Interrupted", - [5] = "Blocked", - [6] = "Evaded", - [7] = "Immune", - [8] = "Deflected" -} - -function GetHitType(hitInfo) - local isCrit = bit.band(hitInfo, HITINFO_CRITICALHIT) ~= 0 - local isGlancing = bit.band(hitInfo, HITINFO_GLANCING) ~= 0 - local isCrushing = bit.band(hitInfo, HITINFO_CRUSHING) ~= 0 - local isMiss = bit.band(hitInfo, HITINFO_MISS) ~= 0 - local isOffHand = bit.band(hitInfo, HITINFO_LEFTSWING) ~= 0 - - local hitType = "Normal" - if isMiss then - hitType = "Miss" - elseif isCrit then - hitType = "Critical" - elseif isGlancing then - hitType = "Glancing" - elseif isCrushing then - hitType = "Crushing" - end - - if isOffHand then - hitType = hitType .. " (Off-hand)" - end - - return hitType -end - -function GetVictimStateName(victimState) - return victimStateNames[victimState] or "Unknown" -end - -local function onAutoAttack(attackerGuid, targetGuid, totalDamage, hitInfo, victimState, subDamageCount, blockedAmount, totalAbsorb, totalResist) - local hitType = GetHitType(hitInfo) - local victimStateName = GetVictimStateName(victimState) - - print(string.format( - "Auto Attack: %s -> %s | %d damage (%s) | State: %s | SubDmg: %d | Absorbed: %d | Resisted: %d | Blocked: %d", - attackerGuid, targetGuid, totalDamage, hitType, victimStateName, - subDamageCount, totalAbsorb, totalResist, blockedAmount - )) -end - --- helpful event hooks for debugging ---Nampower:RegisterEvent("UNIT_CASTEVENT", function(casterGuid, targetGuid, event, spellID, castDuration) --- if(casterGuid=="0x00000000001CD43C") then --- print("CASTEVENT: " .. tostring(casterGuid) .. " -> " .. tostring(targetGuid) .. " event: " .. tostring(event) .. " spellID: " .. tostring(spellID) .. " castDuration: " .. tostring(castDuration)) --- end ---end) - ---Nampower:RegisterEvent("AURA_CAST_ON_OTHER", function(spellId, caster, target, effect, effectname) --- local unitName = target and UnitName(target) or "" --- print("AURA_CAST_ON_OTHER: " .. tostring(spellId) .. " " .. tostring(GetSpellRecField(spellId, "name")) .. " by " .. tostring(UnitName(caster)) .. " on " .. unitName .. " effect: " .. tostring(effect) .. " effectname: " .. tostring(effectname)) ---end) --- ---Nampower:RegisterEvent("AURA_CAST_ON_SELF", function(spellId, caster, target, effect, effectname) --- local unitName = target and UnitName(target) or "" --- print("AURA_CAST_ON_SELF: " .. tostring(spellId) .. " " .. tostring(GetSpellRecField(spellId, "name")) .. " by " .. tostring(UnitName(caster)) .. " on " .. unitName .. " effect: " .. tostring(effect) .. " effectname: " .. tostring(effectname)) ---end) --- - ---Nampower:RegisterEvent("AUTO_ATTACK_SELF", onAutoAttack) ---Nampower:RegisterEvent("AUTO_ATTACK_OTHER", onAutoAttack) - -if not Nampower:HasMinimumVersion(2, 25, 0) then - return -end - -local spellTypeNames = { - [0] = "Normal", - [1] = "Channeling", - [2] = "Autorepeating", -} - -local function onSpellStart(itemId, spellId, casterGuid, targetGuid, castFlags, castTime, duration, spellType, corpseOwnerGuid) - local spellName = GetSpellRecField and GetSpellRecField(spellId, "name") or spellId - local spellTypeName = spellTypeNames[spellType] or "Unknown" - local caster = UnitName(casterGuid) or tostring(casterGuid) - local target = UnitName(targetGuid) or tostring(targetGuid) - local corpse = nil - if corpseOwnerGuid then - corpse = UnitName(corpseOwnerGuid) or tostring(corpseOwnerGuid) - end - print(string.format( - "SPELL_START: %s (id:%d) | Caster: %s -> Target: %s | ItemId: %d | Flags: %d | CastTime: %dms | Duration: %dms | Type: %s | CorpseOwner: %s", - tostring(spellName), spellId, caster, target, itemId, castFlags, castTime, duration, spellTypeName, tostring(corpse) - )) -end - -local function onSpellGo(itemId, spellId, casterGuid, targetGuid, castFlags, numTargetsHit, numTargetsMissed, corpseOwnerGuid) - local spellName = GetSpellRecField and GetSpellRecField(spellId, "name") or spellId - local caster = UnitName(casterGuid) or tostring(casterGuid) - local target = UnitName(targetGuid) or tostring(targetGuid) - local corpse = nil - if corpseOwnerGuid then - corpse = UnitName(corpseOwnerGuid) or tostring(corpseOwnerGuid) - end - print(string.format( - "SPELL_GO: %s (id:%d) | Caster: %s -> Target: %s | ItemId: %d | Flags: %d | Hit: %d | Missed: %d | CorpseOwner: %s", - tostring(spellName), spellId, caster, target, itemId, castFlags, numTargetsHit, numTargetsMissed, tostring(corpse) - )) -end - -local function onSpellFailedSelf(spellId, spellResult, failedByServer) - local spellName = GetSpellRecField and GetSpellRecField(spellId, "name") or spellId - local source = failedByServer == 1 and "Server" or "Client" - print(string.format( - "SPELL_FAILED_SELF: %s (id:%d) | Result: %d | Source: %s", - tostring(spellName), spellId, spellResult, source - )) -end - -local function onSpellFailedOther(casterGuid, spellId) - local spellName = GetSpellRecField and GetSpellRecField(spellId, "name") or spellId - print(string.format( - "SPELL_FAILED_OTHER: %s (id:%d) | Caster: %s", - tostring(spellName), spellId, casterGuid - )) -end - -local function onSpellDelayed(casterGuid, delayMs) - print(string.format( - "SPELL_DELAYED: Caster: %s | Delay: %dms", - casterGuid, delayMs - )) -end - -local function onSpellChannelStart(spellId, targetGuid, durationMs) - local spellName = GetSpellRecField and GetSpellRecField(spellId, "name") or spellId - print(string.format( - "SPELL_CHANNEL_START: %s (id:%d) | Target: %s | Duration: %dms", - tostring(spellName), spellId, targetGuid, durationMs - )) -end - -local function onSpellChannelUpdate(spellId, targetGuid, remainingMs) - local spellName = GetSpellRecField and GetSpellRecField(spellId, "name") or spellId - print(string.format( - "SPELL_CHANNEL_UPDATE: %s (id:%d) | Target: %s | Remaining: %dms", - tostring(spellName), spellId, targetGuid, remainingMs - )) -end - ---Nampower:RegisterEvent("SPELL_START_SELF", onSpellStart) ---Nampower:RegisterEvent("SPELL_START_OTHER", onSpellStart) ---Nampower:RegisterEvent("SPELL_GO_SELF", onSpellGo) ---Nampower:RegisterEvent("SPELL_GO_OTHER", onSpellGo) ---Nampower:RegisterEvent("SPELL_FAILED_SELF", onSpellFailedSelf) ---Nampower:RegisterEvent("SPELL_FAILED_OTHER", onSpellFailedOther) ---Nampower:RegisterEvent("SPELL_DELAYED_SELF", onSpellDelayed) ---Nampower:RegisterEvent("SPELL_DELAYED_OTHER", onSpellDelayed) ---Nampower:RegisterEvent("SPELL_CHANNEL_START", onSpellChannelStart) ---Nampower:RegisterEvent("SPELL_CHANNEL_UPDATE", onSpellChannelUpdate) - -if not Nampower:HasMinimumVersion(2, 26, 0) then - return -end - --- Spell Heal Events (gated behind NP_EnableSpellHealEvents CVar, default 0) --- SPELL_HEAL_BY_SELF - Fires when the active player is the caster (you healed someone) --- SPELL_HEAL_BY_OTHER - Fires when someone other than the active player is the caster (someone else healed someone) --- SPELL_HEAL_ON_SELF - Fires when the active player is the target (you received a heal) --- Note: SPELL_HEAL_BY_SELF and SPELL_HEAL_ON_SELF can both fire for the same heal if you heal yourself - -local function createSpellHealHandler(eventName) - return function(targetGuid, casterGuid, spellId, amount, critical, periodic) - local critText = critical == 1 and " (CRIT)" or "" - local periodicText = periodic == 1 and " (PERIODIC)" or "" - local spellName = GetSpellRecField and GetSpellRecField(spellId, "name") or spellId - print(string.format( - "%s: %s healed %s for %d with %s%s%s", - eventName, UnitName(casterGuid), UnitName(targetGuid), amount, tostring(spellName), critText, periodicText - )) - end -end - --- Spell Energize Events (gated behind NP_EnableSpellEnergizeEvents CVar, default 0) --- SPELL_ENERGIZE_BY_SELF - Fires when the active player is the caster (you restored power to someone) --- SPELL_ENERGIZE_BY_OTHER - Fires when someone other than the active player is the caster (someone else restored power) --- SPELL_ENERGIZE_ON_SELF - Fires when the active player is the target (you received power) --- Note: SPELL_ENERGIZE_BY_SELF and SPELL_ENERGIZE_ON_SELF can both fire for the same energize if you restore power to yourself - --- Power Type Constants -local POWER_MANA = 0 -local POWER_RAGE = 1 -local POWER_FOCUS = 2 -local POWER_ENERGY = 3 -local POWER_HAPPINESS = 4 -local POWER_HEALTH = -2 -- 0xFFFFFFFE as unsigned - -local POWER_NAMES = { - [0] = "Mana", - [1] = "Rage", - [2] = "Focus", - [3] = "Energy", - [4] = "Happiness", - [-2] = "Health", -} - -function GetPowerTypeName(powerType) - return POWER_NAMES[powerType] or "Unknown" -end - -local function createSpellEnergizeHandler(eventName) - return function(targetGuid, casterGuid, spellId, powerType, amount, periodic) - local powerName = GetPowerTypeName(powerType) - local periodicText = periodic == 1 and " (PERIODIC)" or "" - local spellName = GetSpellRecField and GetSpellRecField(spellId, "name") or spellId - print(string.format( - "%s: %s restored %d %s to %s with %s%s", - eventName, UnitName(casterGuid), amount, powerName, UnitName(targetGuid), tostring(spellName), periodicText - )) - end -end - ---Nampower:RegisterEvent("SPELL_HEAL_BY_SELF", createSpellHealHandler("SPELL_HEAL_BY_SELF")) ---Nampower:RegisterEvent("SPELL_HEAL_BY_OTHER", createSpellHealHandler("SPELL_HEAL_BY_OTHER")) ---Nampower:RegisterEvent("SPELL_HEAL_ON_SELF", createSpellHealHandler("SPELL_HEAL_ON_SELF")) ---Nampower:RegisterEvent("SPELL_ENERGIZE_BY_SELF", createSpellEnergizeHandler("SPELL_ENERGIZE_BY_SELF")) ---Nampower:RegisterEvent("SPELL_ENERGIZE_BY_OTHER", createSpellEnergizeHandler("SPELL_ENERGIZE_BY_OTHER")) ---Nampower:RegisterEvent("SPELL_ENERGIZE_ON_SELF", createSpellEnergizeHandler("SPELL_ENERGIZE_ON_SELF")) - -if not Nampower:HasMinimumVersion(2, 30, 0) then - return -end - --- Aura Duration Update Events --- BUFF_UPDATE_DURATION_SELF - aura slot 0-31 --- DEBUFF_UPDATE_DURATION_SELF - aura slot 32-47 --- Parameters: auraSlot, durationMs, expirationTimeMs - -local function createAuraDurationHandler(eventName) - return function(auraSlot, durationMs, expirationTimeMs) - print(string.format( - "%s: slot %d | Duration: %dms | Expires: %d", - eventName, auraSlot, durationMs, expirationTimeMs - )) - end -end --- ---Nampower:RegisterEvent("DEBUFF_UPDATE_DURATION_SELF", createAuraDurationHandler("DEBUFF_UPDATE_DURATION_SELF")) ---Nampower:RegisterEvent("BUFF_UPDATE_DURATION_SELF", createAuraDurationHandler("BUFF_UPDATE_DURATION_SELF")) - --- Aura Added/Removed Events --- BUFF_ADDED_SELF, BUFF_REMOVED_SELF, BUFF_ADDED_OTHER, BUFF_REMOVED_OTHER --- DEBUFF_ADDED_SELF, DEBUFF_REMOVED_SELF, DEBUFF_ADDED_OTHER, DEBUFF_REMOVED_OTHER --- Parameters: guid, luaSlot, spellId, stackCount, auraLevel, auraSlot - -local function createAuraChangeHandler(eventName) - return function(guid, luaSlot, spellId, stackCount, auraLevel, auraSlot) - local spellName = GetSpellRecField and GetSpellRecField(spellId, "name") or spellId - print(string.format( - "%s: %s | luaSlot %d | %s (id:%d) | Stacks: %d | Level: %d | auraSlot: %d", - eventName, guid, luaSlot, tostring(spellName), spellId, stackCount, auraLevel, auraSlot - )) - end -end - ---Nampower:RegisterEvent("BUFF_ADDED_SELF", createAuraChangeHandler("BUFF_ADDED_SELF")) ---Nampower:RegisterEvent("BUFF_REMOVED_SELF", createAuraChangeHandler("BUFF_REMOVED_SELF")) ---Nampower:RegisterEvent("BUFF_ADDED_OTHER", createAuraChangeHandler("BUFF_ADDED_OTHER")) ---Nampower:RegisterEvent("BUFF_REMOVED_OTHER", createAuraChangeHandler("BUFF_REMOVED_OTHER")) ---Nampower:RegisterEvent("DEBUFF_ADDED_SELF", createAuraChangeHandler("DEBUFF_ADDED_SELF")) ---Nampower:RegisterEvent("DEBUFF_REMOVED_SELF", createAuraChangeHandler("DEBUFF_REMOVED_SELF")) ---Nampower:RegisterEvent("DEBUFF_ADDED_OTHER", createAuraChangeHandler("DEBUFF_ADDED_OTHER")) ---Nampower:RegisterEvent("DEBUFF_REMOVED_OTHER", createAuraChangeHandler("DEBUFF_REMOVED_OTHER")) - --- Spell Damage Events (gated behind NP_EnableSpellDamageEvents CVar, default 0) --- SPELL_DAMAGE_EVENT_SELF - Fires when the active player deals spell damage --- SPELL_DAMAGE_EVENT_OTHER - Fires when someone other than the active player deals spell damage - --- Spell Damage Hit Info Constants -local SPELL_DAMAGE_HIT_NORMAL = 0 -local SPELL_DAMAGE_HIT_CRIT = 2 - --- Spell School Constants -local SPELL_SCHOOL_NORMAL = 0 -local SPELL_SCHOOL_HOLY = 1 -local SPELL_SCHOOL_FIRE = 2 -local SPELL_SCHOOL_NATURE = 3 -local SPELL_SCHOOL_FROST = 4 -local SPELL_SCHOOL_SHADOW = 5 -local SPELL_SCHOOL_ARCANE = 6 - -local SPELL_SCHOOL_NAMES = { - [0] = "Physical", - [1] = "Holy", - [2] = "Fire", - [3] = "Nature", - [4] = "Frost", - [5] = "Shadow", - [6] = "Arcane", -} - -function GetSpellSchoolName(spellSchool) - return SPELL_SCHOOL_NAMES[spellSchool] or "Unknown" -end - -local function createSpellDamageHandler(eventName) - return function(targetGuid, casterGuid, spellId, amount, mitigationStr, hitInfo, spellSchool, effectAuraStr) - local spellName = GetSpellRecField and GetSpellRecField(spellId, "name") or spellId - local schoolName = GetSpellSchoolName(spellSchool) - local critText = hitInfo == SPELL_DAMAGE_HIT_CRIT and " (CRIT)" or "" - print(string.format( - "%s: %s -> %s | %s (id:%d) | %d %s damage%s | Mitigation: %s | HitInfo: %d | Effects: %s", - eventName, casterGuid, targetGuid, tostring(spellName), spellId, amount, schoolName, critText, mitigationStr, hitInfo, effectAuraStr - )) - end -end - ---Nampower:RegisterEvent("SPELL_DAMAGE_EVENT_SELF", createSpellDamageHandler("SPELL_DAMAGE_EVENT_SELF")) ---Nampower:RegisterEvent("SPELL_DAMAGE_EVENT_OTHER", createSpellDamageHandler("SPELL_DAMAGE_EVENT_OTHER")) - -if not Nampower:HasMinimumVersion(2, 31, 0) then - return -end - --- Spell Miss Events (gated behind NP_EnableSpellMissEvents CVar, default 0) --- SPELL_MISS_SELF - Fires when the active player's spell misses/resists/is immune/etc --- SPELL_MISS_OTHER - Fires when someone else's spell misses/resists/is immune/etc --- Triggered by SMSG_SPELLLOGMISS, SMSG_PROCRESIST, and SMSG_SPELLORDAMAGE_IMMUNE - --- SpellMissInfo Constants -local SPELL_MISS_NONE = 0 -local SPELL_MISS_MISS = 1 -local SPELL_MISS_RESIST = 2 -local SPELL_MISS_DODGE = 3 -local SPELL_MISS_PARRY = 4 -local SPELL_MISS_BLOCK = 5 -local SPELL_MISS_EVADE = 6 -local SPELL_MISS_IMMUNE = 7 -local SPELL_MISS_IMMUNE2 = 8 -local SPELL_MISS_DEFLECT = 9 -local SPELL_MISS_ABSORB = 10 -local SPELL_MISS_REFLECT = 11 - -local SPELL_MISS_NAMES = { - [0] = "None", - [1] = "Miss", - [2] = "Resist", - [3] = "Dodge", - [4] = "Parry", - [5] = "Block", - [6] = "Evade", - [7] = "Immune", - [8] = "Immune", - [9] = "Deflect", - [10] = "Absorb", - [11] = "Reflect", -} - -function GetSpellMissName(missInfo) - return SPELL_MISS_NAMES[missInfo] or "Unknown" -end - -local function createSpellMissHandler(eventName) - return function(casterGuid, targetGuid, spellId, missInfo) - local spellName = GetSpellRecField and GetSpellRecField(spellId, "name") or spellId - local missName = GetSpellMissName(missInfo) - print(string.format( - "%s: %s -> %s | %s (id:%d) | %s", - eventName, UnitName(casterGuid), UnitName(targetGuid), tostring(spellName), spellId, missName - )) - end -end - ---Nampower:RegisterEvent("SPELL_MISS_SELF", createSpellMissHandler("SPELL_MISS_SELF")) ---Nampower:RegisterEvent("SPELL_MISS_OTHER", createSpellMissHandler("SPELL_MISS_OTHER")) - -if not Nampower:HasMinimumVersion(2, 39, 0) then - return -end - --- UNIT_INVENTORY_CHANGED - fires when a unit's inventory changes (standard named token variant) --- Parameters: unit (string) - unit token like "player", "target", "party1", etc. - --- UNIT_INVENTORY_CHANGED_GUID - fires when a unit's inventory changes (GUID variant) --- Parameters: --- guid (string) - unit GUID e.g. "0xF5300000000000A5" --- isPlayer (int) - 1 if the unit is the active player, 0 otherwise --- isTarget (int) - 1 if the unit is the current locked target, 0 otherwise --- isMouseover (int) - 1 if the unit is the current mouseover, 0 otherwise --- isPet (int) - 1 if the unit is the active player's pet, 0 otherwise --- partyIndex (int) - party slot (1-4) if the unit is a party member, 0 otherwise --- raidIndex (int) - raid slot (1-40) if the unit is a raid member, 0 otherwise - -local function onUnitInventoryChanged(unit) - print(string.format("UNIT_MODEL_CHANGED: %s", unit)) -end - -local function onUnitInventoryChangedGuid(guid, isPlayer, isTarget, isMouseover, isPet, partyIndex, raidIndex) - print(string.format( - "UNIT_MODEL_CHANGED_GUID: %s | isPlayer:%d isTarget:%d isMouseover:%d isPet:%d party:%d raid:%d", - guid, isPlayer, isTarget, isMouseover, isPet, partyIndex, raidIndex - )) -end - ---Nampower:RegisterEvent("UNIT_MODEL_CHANGED", onUnitInventoryChanged) ---Nampower:RegisterEvent("UNIT_MODEL_CHANGED_GUID", onUnitInventoryChangedGuid) - --- UNIT_MANA - fires when a unit's mana changes (standard named token variant) --- Parameters: unit (string) - unit token like "player", "target", "party1", etc. - --- UNIT_MANA_GUID - fires when a unit's mana changes (GUID variant) --- Parameters: --- guid (string) - unit GUID e.g. "0xF5300000000000A5" --- isPlayer (int) - 1 if the unit is the active player, 0 otherwise --- isTarget (int) - 1 if the unit is the current locked target, 0 otherwise --- isMouseover (int) - 1 if the unit is the current mouseover, 0 otherwise --- isPet (int) - 1 if the unit is the active player's pet, 0 otherwise --- partyIndex (int) - party slot (1-4) if the unit is a party member, 0 otherwise --- raidIndex (int) - raid slot (1-40) if the unit is a raid member, 0 otherwise - -local function onUnitMana(unit) - print(string.format("UNIT_MANA: %s", unit)) -end - -local function onUnitManaGuid(guid, isPlayer, isTarget, isMouseover, isPet, partyIndex, raidIndex) - if UnitName(guid) == "Tankeboy" or UnitName(guid) == "Icansummon" then - print(string.format( - "UNIT_MANA_GUID: %s | isPlayer:%d isTarget:%d isMouseover:%d isPet:%d party:%d raid:%d", - UnitName(guid), isPlayer, isTarget, isMouseover, isPet, partyIndex, raidIndex - )) - end -end - ---Nampower:RegisterEvent("UNIT_MANA", onUnitMana) ---Nampower:RegisterEvent("UNIT_MANA_GUID", onUnitManaGuid) - --- UNIT_COMBAT - fires when a unit participates in combat (standard named token variant) --- Parameters: --- unit (string) - unit token like "player", "target", "party1", etc. --- action (string) - e.g. "WOUND", "MISS", "DODGE", "PARRY", "BLOCK", "EVADE", "IMMUNE", "REFLECT", "ABSORB", "INTERRUPT" --- critical (string) - "CRITICAL" if a crit, "" otherwise --- damage (int) - raw damage amount (0 for non-damaging outcomes) --- school (int) - damage school (0=Physical, 1=Holy, 2=Fire, 3=Nature, 4=Frost, 5=Shadow, 6=Arcane) - --- UNIT_COMBAT_GUID - fires once per combat feedback event, identified by GUID --- Unlike other GUID events, carries full combat detail rather than unit membership flags. --- Parameters: --- guid (string) - unit GUID e.g. "0xF5300000000000A5" --- action (string) - e.g. "WOUND", "MISS", "DODGE", "PARRY", "BLOCK", "EVADE", "IMMUNE", "REFLECT", "ABSORB", "INTERRUPT" --- damage (int) - raw damage amount (0 for non-damaging outcomes like dodge/miss) --- school (int) - damage school (0=Physical, 1=Holy, 2=Fire, 3=Nature, 4=Frost, 5=Shadow, 6=Arcane) --- hitInfo (int) - hit info bitfield --- isInteract (int) - 1 if the unit matches the current interact target, 0 otherwise --- isPet (int) - 1 if the unit is the active player's pet, 0 otherwise --- partyIndex (int) - party slot (1-4) if the unit is a party member, 0 otherwise --- raidIndex (int) - raid slot (1-40) if the unit is a raid member, 0 otherwise - -local function onUnitCombat(unit, action, critical, damage, school) - local schoolName = GetSpellSchoolName(school) - local critText = critical == "CRITICAL" and " (CRIT)" or "" - print(string.format( - "UNIT_COMBAT: %s | %s | %d %s damage%s", - unit, action, damage, schoolName, critText - )) -end - -local function onUnitCombatGuid(guid, action, damage, school, hitInfo, isInteract, isPet, partyIndex, raidIndex) - local name = UnitName(guid) - local schoolName = GetSpellSchoolName(school) - print(string.format( - "UNIT_COMBAT_GUID: %s | %s | %d %s | hitInfo:%d isInteract:%d isPet:%d party:%d raid:%d", - name, action, damage, schoolName, hitInfo, isInteract, isPet, partyIndex, raidIndex - )) -end - ---Nampower:RegisterEvent("UNIT_COMBAT", onUnitCombat) ---Nampower:RegisterEvent("UNIT_COMBAT_GUID", onUnitCombatGuid) - --- SPELL_CAST_EVENT - fires when you (or certain pets) initiate a spell cast --- Triggered client-side before the cast is sent to the server. --- Only fires for spells you initiated. --- Parameters: --- success (int) - 1 if cast succeeded, 0 if failed --- spellId (int) - spell ID --- castType (int) - see Cast Type Constants below --- targetGuid (string) - guid string like "0xF5300000000000A5" --- itemId (int) - item ID that triggered the spell, 0 if not item-triggered - --- Cast Type Constants -local CAST_TYPE_NORMAL = 0 -local CAST_TYPE_NON_GCD = 1 -local CAST_TYPE_ON_SWING = 2 -local CAST_TYPE_CHANNEL = 3 -local CAST_TYPE_TARGETING = 4 -local CAST_TYPE_TARGETING_NON_GCD = 5 - -local CAST_TYPE_NAMES = { - [0] = "Normal", - [1] = "NonGCD", - [2] = "OnSwing", - [3] = "Channel", - [4] = "Targeting", - [5] = "TargetingNonGCD", -} - -function GetCastTypeName(castType) - return CAST_TYPE_NAMES[castType] or "Unknown" -end - -local function onSpellCastEvent(success, spellId, castType, targetGuid, itemId) - local spellName = GetSpellRecField and GetSpellRecField(spellId, "name") or spellId - local castTypeName = GetCastTypeName(castType) - local successText = success == 1 and "OK" or "FAILED" - local itemText = itemId ~= 0 and (" | Item: " .. tostring(itemId)) or "" - print(string.format( - "SPELL_CAST_EVENT: [%s] %s (id:%d) | Type: %s | Target: %s%s", - successText, tostring(spellName), spellId, castTypeName, tostring(targetGuid), itemText - )) -end - ---Nampower:RegisterEvent("SPELL_CAST_EVENT", onSpellCastEvent) - --- UNIT_AURA_GUID - fires when a unit's aura state changes (GUID variant) --- All GUID events share the same parameter format: --- guid (string) - unit guid like "0xF5300000000000A5" --- isPlayer (int) - 1 if the unit is the active player, 0 otherwise --- isTarget (int) - 1 if the unit is the current locked target, 0 otherwise --- isMouseover (int) - 1 if the unit is the current mouseover, 0 otherwise --- isPet (int) - 1 if the unit is the active player's pet, 0 otherwise --- partyIndex (int) - party slot (1-4) if the unit is a party member, 0 otherwise --- raidIndex (int) - raid slot (1-40) if the unit is a raid member, 0 otherwise -local function onUnitGuid(guid, isPlayer, isTarget, isMouseover, isPet, partyIndex, raidIndex) - isPlayer = isPlayer or 0 - isTarget = isTarget or 0 - isMouseover = isMouseover or 0 - isPet = isPet or 0 - partyIndex = partyIndex or 0 - raidIndex = raidIndex or 0 - print(string.format( - "%s: %s | isPlayer:%d isTarget:%d isMouseover:%d isPet:%d party:%d raid:%d", - "UNIT_AURA_GUID", tostring(UnitName(guid) or guid), isPlayer, isTarget, isMouseover, isPet, partyIndex, raidIndex - )) -end - ---Nampower:RegisterEvent("UNIT_AURA_GUID", onUnitGuid) - -if not Nampower:HasMinimumVersion(3, 4, 0) then - return -end - --- ENVIRONMENTAL_DMG_SELF / ENVIRONMENTAL_DMG_OTHER --- Parameters: --- unitGuid (string) - guid of the unit that took damage --- dmgType (int) - environmental damage type --- damage (int) - amount of damage taken --- absorb (int) - amount of damage absorbed --- resist (int) - amount of damage resisted -local ENV_DMG_NAMES = { - [0] = "Exhausted", - [1] = "Drowning", - [2] = "Fall", - [3] = "Lava", - [4] = "Slime", - [5] = "Fire", - [6] = "FallToVoid", -} - -local function onEnvironmentalDmg(unitGuid, dmgType, damage, absorb, resist) - dmgType = dmgType or -1 - damage = damage or 0 - absorb = absorb or 0 - resist = resist or 0 - print(string.format( - "ENVIRONMENTAL_DMG: %s took %d %s damage (absorbed:%d resisted:%d)", - tostring(unitGuid), damage, ENV_DMG_NAMES[dmgType] or "Unknown", absorb, resist - )) -end - ---Nampower:RegisterEvent("ENVIRONMENTAL_DMG_SELF", onEnvironmentalDmg) ---Nampower:RegisterEvent("ENVIRONMENTAL_DMG_OTHER", onEnvironmentalDmg) - --- DAMAGE_SHIELD_SELF / DAMAGE_SHIELD_OTHER --- Parameters: --- unitGuid (string) - guid of shield owner --- targetGuid (string) - guid of attacker taking reflected damage --- damage (int) - amount of shield damage dealt --- spellSchool (int) - school of shield damage -local SCHOOL_NAMES = { - [0] = "Physical", - [1] = "Holy", - [2] = "Fire", - [3] = "Nature", - [4] = "Frost", - [5] = "Shadow", - [6] = "Arcane", -} - -local function onDamageShield(unitGuid, targetGuid, damage, spellSchool) - damage = damage or 0 - spellSchool = spellSchool or -1 - print(string.format( - "DAMAGE_SHIELD: %s dealt %d %s damage to %s", - tostring(unitGuid), damage, SCHOOL_NAMES[spellSchool] or "Unknown", tostring(targetGuid) - )) -end - ---Nampower:RegisterEvent("DAMAGE_SHIELD_SELF", onDamageShield) ---Nampower:RegisterEvent("DAMAGE_SHIELD_OTHER", onDamageShield) - --- SPELL_DISPEL_BY_SELF / SPELL_DISPEL_BY_OTHER --- Parameters: --- casterGuid (string) - guid of dispel caster --- targetGuid (string) - guid of dispelled unit --- spellId (int) - dispelled spell id -local function onSpellDispel(casterGuid, targetGuid, spellId) - spellId = spellId or 0 - local spellName = GetSpellRecField and GetSpellRecField(spellId, "name") or spellId - print(string.format( - "SPELL_DISPEL_BY: %s dispelled %s (id:%d) from %s", - tostring(casterGuid), tostring(spellName), spellId, tostring(targetGuid) - )) -end - ---Nampower:RegisterEvent("SPELL_DISPEL_BY_SELF", onSpellDispel) ---Nampower:RegisterEvent("SPELL_DISPEL_BY_OTHER", onSpellDispel) - --- PrintSpellRange(rangeIndex) --- Prints the SpellRange DBC record for the given index using GetSpellRangeData. --- GetSpellRangeData returns: minRange, maxRange, flags, name -function PrintSpellRange(rangeIndex) - if not GetSpellRangeData then - print("GetSpellRangeData is not available") - return - end - local minRange, maxRange, flags, name = GetSpellRangeData(rangeIndex) - if minRange == nil then - print(string.format("PrintSpellRange(%d): no record found", rangeIndex)) - return - end - print(string.format( - "SpellRange[%d]: name=%q min=%.2f max=%.2f flags=0x%08X", - rangeIndex, tostring(name), minRange, maxRange, flags - )) -end +if not Nampower then + return +end + +if not Nampower:HasMinimumVersion(2, 14, 0) then + return +end + +local function GetSpellMod(num) + local modifierTypes = { + [0] = "DAMAGE", + [1] = "DURATION", + [2] = "THREAT", + [3] = "ATTACK_POWER", + [4] = "CHARGES", + [5] = "RANGE", + [6] = "RADIUS", + [7] = "CRITICAL_CHANCE", + [8] = "ALL_EFFECTS", + [9] = "NOT_LOSE_CASTING_TIME", + [10] = "CASTING_TIME", + [11] = "COOLDOWN", + [12] = "SPEED", + [14] = "COST", + [15] = "CRIT_DAMAGE_BONUS", + [16] = "RESIST_MISS_CHANCE", + [17] = "JUMP_TARGETS", + [18] = "CHANCE_OF_SUCCESS", + [19] = "ACTIVATION_TIME", + [20] = "EFFECT_PAST_FIRST", + [21] = "CASTING_TIME_OLD", + [22] = "DOT", + [23] = "HASTE", + [24] = "SPELL_BONUS_DAMAGE", + [27] = "MULTIPLE_VALUE", + [28] = "RESIST_DISPEL_CHANCE" + } + return modifierTypes[num] or "UNKNOWN" +end + +function PrintTable(tbl, indent) + indent = indent or 0 + local prefix = string.rep(" ", indent) + + for k, v in pairs(tbl) do + if type(v) == "table" then + print(prefix .. tostring(k) .. ":") + PrintTable(v, indent + 1) + else + print(prefix .. tostring(k) .. ": " .. tostring(v)) + end + end +end + +if CombatLogAdd then + function PrintTableToCombatLog(tbl, indent) + indent = indent or 0 + local prefix = string.rep(" ", indent) + + for k, v in pairs(tbl) do + if type(v) == "table" then + CombatLogAdd(prefix .. tostring(k) .. ":") + PrintTableToCombatLog(v, indent + 1) + else + CombatLogAdd(prefix .. tostring(k) .. ": " .. tostring(v)) + end + end + end + + function LogUnitData(unit) + local data = GetUnitData(unit) + if data then + PrintTableToCombatLog(data) + else + print("No unit data available") + end + end + + function LogSpellData(spellId) + local data = GetSpellRec(spellId) + if data then + PrintTableToCombatLog(data) + else + print("No spell data available") + end + end +end + +function PrintBuffs(unit) + for i = 1, 32 do + local texture, stacks, spellId = UnitBuff(unit, i) + if not texture then + break + end + print(tostring(i) .. " " .. texture .. " " .. tostring(spellId)) + end +end + +function PrintAuras(unit) + local auras = GetUnitField(unit, "aura") + local applications = GetUnitField(unit, "auraApplications") + if not auras then return end + for i, auraId in ipairs(auras) do + local stacks = -1 + if applications then + local stacks = (applications[i] or 0) + 1 + end + if auraId > 0 then + print(tostring(i) .. " " .. tostring(auraId) .. " x" .. tostring(stacks)) + end + end +end + +function PrintUnitData(unit) + local data = GetUnitData(unit) + if data then + PrintTable(data) + else + print("No unit data available") + end +end + +function PrintSpellMods(spellId) + for i = 0, 28 do + local flatMod, percentMod, ret = GetSpellModifiers(spellId, i) + if ret > 0 then + print(GetSpellMod(i) .. " (" .. tostring(i) .. "): flat:" .. tostring(flatMod) .. " percent:" .. tostring(percentMod)) + end + end +end + +function PrintSpellData(spellId) + local data = GetSpellRec(spellId) + if data then + PrintTable(data) + else + print("No spell data available") + end +end + +if not Nampower:HasMinimumVersion(2, 16, 0) then + return +end + +function PrintItemLocation(itemNameOrId) + local bagIndex, slot = FindPlayerItemSlot(itemNameOrId) + print(tostring(bagIndex) .. " " .. tostring(slot)) +end + +function PrintEquippedItems() + local target = "player" + if UnitExists("target") then + target = "target" + end + local data = GetEquippedItems(target) + PrintTable(data) +end + +function LogEquippedItems() + local target = "player" + if UnitExists("target") then + target = "target" + end + local data = GetEquippedItems(target) + PrintTableToCombatLog(data) +end + +function PrintBagItems() + local data = GetBagItems() + PrintTable(data) +end + +function LogBagItems() + local data = GetBagItems() + PrintTableToCombatLog(data) +end + +function TestBagItems(bagIndex) + local items = GetBagItems(bagIndex) + local numItemsChecked = 0 + for slot, itemData in pairs(items) do + local itemLink = GetContainerItemLink(bagIndex, slot) + if not itemLink then + print(tostring(bagIndex) .. " " .. tostring(slot)) + PrintTable(itemData) + end + local _, _, itemId = strfind(itemLink, "(%d+):") + numItemsChecked = numItemsChecked + 1 + if (tostring(itemData.itemId) ~= itemId) then + print("Item mismatch at " .. tostring(bagIndex) .. " " .. tostring(slot) .. " " .. tostring(itemData.itemId) .. " " .. tostring(itemId)) + print(itemLink) + end + end + print("checked " .. tostring(numItemsChecked) .. " items") +end + +function TestAllBagItems() + local data = GetBagItems() + local numItemsChecked = 0 + for bagIndex, items in pairs(data) do + for slot, itemData in pairs(items) do + local itemLink = GetContainerItemLink(bagIndex, slot) + if not itemLink then + print(tostring(bagIndex) .. " " .. tostring(slot)) + PrintTable(itemData) + end + local _, _, itemId = strfind(itemLink, "(%d+):") + numItemsChecked = numItemsChecked + 1 + if (tostring(itemData.itemId) ~= itemId) then + print("Item mismatch at " .. tostring(bagIndex) .. " " .. tostring(slot) .. " " .. tostring(itemData.itemId) .. " " .. tostring(itemId)) + print(itemLink) + end + end + end + print("checked " .. tostring(numItemsChecked) .. " items") +end + +function TestTrinkets() + local data = GetTrinkets() + for index, trinketData in pairs(data) do + local bagIndex = trinketData.bagIndex + local slot = trinketData.slotIndex + local itemLink + if bagIndex then + itemLink = GetContainerItemLink(bagIndex, slot) + else + itemLink = GetInventoryItemLink("player", slot) + end + local _, _, itemId = strfind(itemLink, "(%d+):") + if (tostring(trinketData.itemId) ~= itemId) then + print("Trinket mismatch at " .. tostring(bagIndex) .. " " .. tostring(slot) .. " " .. tostring(itemData.itemId) .. " " .. tostring(itemId)) + print(itemLink) + end + end +end + +if not Nampower:HasMinimumVersion(2, 17, 0) then + return +end + +function PrintCastInfo() + local data = GetCastInfo() + if data then + PrintTable(data) + end +end + +function PrintSpellCooldown(spellId) + local data = GetSpellIdCooldown(spellId) + if data then + PrintTable(data) + end +end + +function PrintItemCooldown(itemId) + local data = GetItemIdCooldown(itemId) + if data then + PrintTable(data) + end +end + +function PrintTrinketCooldown(trinketId) + local data = GetTrinketCooldown(trinketId) + if data then + PrintTable(data) + end +end + +function PrintTrinkets() + local data = GetTrinkets(1) + if data then + PrintTable(data) + end +end + +if not Nampower:HasMinimumVersion(2, 24, 0) then + return +end + +-- Auto Attack Event Constants +local HITINFO_NORMALSWING = 0 +local HITINFO_UNK0 = 1 +local HITINFO_AFFECTS_VICTIM = 2 +local HITINFO_LEFTSWING = 4 +local HITINFO_UNK3 = 8 +local HITINFO_MISS = 16 +local HITINFO_ABSORB = 32 +local HITINFO_RESIST = 64 +local HITINFO_CRITICALHIT = 128 +local HITINFO_UNK8 = 256 +local HITINFO_UNK9 = 8192 +local HITINFO_GLANCING = 16384 +local HITINFO_CRUSHING = 32768 +local HITINFO_NOACTION = 65536 +local HITINFO_SWINGNOHITSOUND = 524288 + +local VICTIMSTATE_UNAFFECTED = 0 +local VICTIMSTATE_NORMAL = 1 +local VICTIMSTATE_DODGE = 2 +local VICTIMSTATE_PARRY = 3 +local VICTIMSTATE_INTERRUPT = 4 +local VICTIMSTATE_BLOCKS = 5 +local VICTIMSTATE_EVADES = 6 +local VICTIMSTATE_IS_IMMUNE = 7 +local VICTIMSTATE_DEFLECTS = 8 + +local victimStateNames = { + [0] = "Unaffected", + [1] = "Normal", + [2] = "Dodged", + [3] = "Parried", + [4] = "Interrupted", + [5] = "Blocked", + [6] = "Evaded", + [7] = "Immune", + [8] = "Deflected" +} + +function GetHitType(hitInfo) + local isCrit = bit.band(hitInfo, HITINFO_CRITICALHIT) ~= 0 + local isGlancing = bit.band(hitInfo, HITINFO_GLANCING) ~= 0 + local isCrushing = bit.band(hitInfo, HITINFO_CRUSHING) ~= 0 + local isMiss = bit.band(hitInfo, HITINFO_MISS) ~= 0 + local isOffHand = bit.band(hitInfo, HITINFO_LEFTSWING) ~= 0 + + local hitType = "Normal" + if isMiss then + hitType = "Miss" + elseif isCrit then + hitType = "Critical" + elseif isGlancing then + hitType = "Glancing" + elseif isCrushing then + hitType = "Crushing" + end + + if isOffHand then + hitType = hitType .. " (Off-hand)" + end + + return hitType +end + +function GetVictimStateName(victimState) + return victimStateNames[victimState] or "Unknown" +end + +local function onAutoAttack(attackerGuid, targetGuid, totalDamage, hitInfo, victimState, subDamageCount, blockedAmount, totalAbsorb, totalResist) + local hitType = GetHitType(hitInfo) + local victimStateName = GetVictimStateName(victimState) + + print(string.format( + "Auto Attack: %s -> %s | %d damage (%s) | State: %s | SubDmg: %d | Absorbed: %d | Resisted: %d | Blocked: %d", + attackerGuid, targetGuid, totalDamage, hitType, victimStateName, + subDamageCount, totalAbsorb, totalResist, blockedAmount + )) +end + +-- helpful event hooks for debugging +--Nampower:RegisterEvent("UNIT_CASTEVENT", function(casterGuid, targetGuid, event, spellID, castDuration) +-- if(casterGuid=="0x00000000001CD43C") then +-- print("CASTEVENT: " .. tostring(casterGuid) .. " -> " .. tostring(targetGuid) .. " event: " .. tostring(event) .. " spellID: " .. tostring(spellID) .. " castDuration: " .. tostring(castDuration)) +-- end +--end) + +--Nampower:RegisterEvent("AURA_CAST_ON_OTHER", function(spellId, caster, target, effect, effectname) +-- local unitName = target and UnitName(target) or "" +-- print("AURA_CAST_ON_OTHER: " .. tostring(spellId) .. " " .. tostring(GetSpellRecField(spellId, "name")) .. " by " .. tostring(UnitName(caster)) .. " on " .. unitName .. " effect: " .. tostring(effect) .. " effectname: " .. tostring(effectname)) +--end) +-- +--Nampower:RegisterEvent("AURA_CAST_ON_SELF", function(spellId, caster, target, effect, effectname) +-- local unitName = target and UnitName(target) or "" +-- print("AURA_CAST_ON_SELF: " .. tostring(spellId) .. " " .. tostring(GetSpellRecField(spellId, "name")) .. " by " .. tostring(UnitName(caster)) .. " on " .. unitName .. " effect: " .. tostring(effect) .. " effectname: " .. tostring(effectname)) +--end) +-- + +--Nampower:RegisterEvent("AUTO_ATTACK_SELF", onAutoAttack) +--Nampower:RegisterEvent("AUTO_ATTACK_OTHER", onAutoAttack) + +if not Nampower:HasMinimumVersion(2, 25, 0) then + return +end + +local spellTypeNames = { + [0] = "Normal", + [1] = "Channeling", + [2] = "Autorepeating", +} + +local function onSpellStart(itemId, spellId, casterGuid, targetGuid, castFlags, castTime, duration, spellType, corpseOwnerGuid) + local spellName = GetSpellRecField and GetSpellRecField(spellId, "name") or spellId + local spellTypeName = spellTypeNames[spellType] or "Unknown" + local caster = UnitName(casterGuid) or tostring(casterGuid) + local target = UnitName(targetGuid) or tostring(targetGuid) + local corpse = nil + if corpseOwnerGuid then + corpse = UnitName(corpseOwnerGuid) or tostring(corpseOwnerGuid) + end + print(string.format( + "SPELL_START: %s (id:%d) | Caster: %s -> Target: %s | ItemId: %d | Flags: %d | CastTime: %dms | Duration: %dms | Type: %s | CorpseOwner: %s", + tostring(spellName), spellId, caster, target, itemId, castFlags, castTime, duration, spellTypeName, tostring(corpse) + )) +end + +local function onSpellGo(itemId, spellId, casterGuid, targetGuid, castFlags, numTargetsHit, numTargetsMissed, corpseOwnerGuid) + local spellName = GetSpellRecField and GetSpellRecField(spellId, "name") or spellId + local caster = UnitName(casterGuid) or tostring(casterGuid) + local target = UnitName(targetGuid) or tostring(targetGuid) + local corpse = nil + if corpseOwnerGuid then + corpse = UnitName(corpseOwnerGuid) or tostring(corpseOwnerGuid) + end + print(string.format( + "SPELL_GO: %s (id:%d) | Caster: %s -> Target: %s | ItemId: %d | Flags: %d | Hit: %d | Missed: %d | CorpseOwner: %s", + tostring(spellName), spellId, caster, target, itemId, castFlags, numTargetsHit, numTargetsMissed, tostring(corpse) + )) +end + +local function onSpellFailedSelf(spellId, spellResult, failedByServer) + local spellName = GetSpellRecField and GetSpellRecField(spellId, "name") or spellId + local source = failedByServer == 1 and "Server" or "Client" + print(string.format( + "SPELL_FAILED_SELF: %s (id:%d) | Result: %d | Source: %s", + tostring(spellName), spellId, spellResult, source + )) +end + +local function onSpellFailedOther(casterGuid, spellId) + local spellName = GetSpellRecField and GetSpellRecField(spellId, "name") or spellId + print(string.format( + "SPELL_FAILED_OTHER: %s (id:%d) | Caster: %s", + tostring(spellName), spellId, casterGuid + )) +end + +local function onSpellDelayed(casterGuid, delayMs) + print(string.format( + "SPELL_DELAYED: Caster: %s | Delay: %dms", + casterGuid, delayMs + )) +end + +local function onSpellChannelStart(spellId, targetGuid, durationMs) + local spellName = GetSpellRecField and GetSpellRecField(spellId, "name") or spellId + print(string.format( + "SPELL_CHANNEL_START: %s (id:%d) | Target: %s | Duration: %dms", + tostring(spellName), spellId, targetGuid, durationMs + )) +end + +local function onSpellChannelUpdate(spellId, targetGuid, remainingMs) + local spellName = GetSpellRecField and GetSpellRecField(spellId, "name") or spellId + print(string.format( + "SPELL_CHANNEL_UPDATE: %s (id:%d) | Target: %s | Remaining: %dms", + tostring(spellName), spellId, targetGuid, remainingMs + )) +end + +--Nampower:RegisterEvent("SPELL_START_SELF", onSpellStart) +--Nampower:RegisterEvent("SPELL_START_OTHER", onSpellStart) +--Nampower:RegisterEvent("SPELL_GO_SELF", onSpellGo) +--Nampower:RegisterEvent("SPELL_GO_OTHER", onSpellGo) +--Nampower:RegisterEvent("SPELL_FAILED_SELF", onSpellFailedSelf) +--Nampower:RegisterEvent("SPELL_FAILED_OTHER", onSpellFailedOther) +--Nampower:RegisterEvent("SPELL_DELAYED_SELF", onSpellDelayed) +--Nampower:RegisterEvent("SPELL_DELAYED_OTHER", onSpellDelayed) +--Nampower:RegisterEvent("SPELL_CHANNEL_START", onSpellChannelStart) +--Nampower:RegisterEvent("SPELL_CHANNEL_UPDATE", onSpellChannelUpdate) + +if not Nampower:HasMinimumVersion(2, 26, 0) then + return +end + +-- Spell Heal Events (gated behind NP_EnableSpellHealEvents CVar, default 0) +-- SPELL_HEAL_BY_SELF - Fires when the active player is the caster (you healed someone) +-- SPELL_HEAL_BY_OTHER - Fires when someone other than the active player is the caster (someone else healed someone) +-- SPELL_HEAL_ON_SELF - Fires when the active player is the target (you received a heal) +-- Note: SPELL_HEAL_BY_SELF and SPELL_HEAL_ON_SELF can both fire for the same heal if you heal yourself + +local function createSpellHealHandler(eventName) + return function(targetGuid, casterGuid, spellId, amount, critical, periodic) + local critText = critical == 1 and " (CRIT)" or "" + local periodicText = periodic == 1 and " (PERIODIC)" or "" + local spellName = GetSpellRecField and GetSpellRecField(spellId, "name") or spellId + print(string.format( + "%s: %s healed %s for %d with %s%s%s", + eventName, UnitName(casterGuid), UnitName(targetGuid), amount, tostring(spellName), critText, periodicText + )) + end +end + +-- Spell Energize Events (gated behind NP_EnableSpellEnergizeEvents CVar, default 0) +-- SPELL_ENERGIZE_BY_SELF - Fires when the active player is the caster (you restored power to someone) +-- SPELL_ENERGIZE_BY_OTHER - Fires when someone other than the active player is the caster (someone else restored power) +-- SPELL_ENERGIZE_ON_SELF - Fires when the active player is the target (you received power) +-- Note: SPELL_ENERGIZE_BY_SELF and SPELL_ENERGIZE_ON_SELF can both fire for the same energize if you restore power to yourself + +-- Power Type Constants +local POWER_MANA = 0 +local POWER_RAGE = 1 +local POWER_FOCUS = 2 +local POWER_ENERGY = 3 +local POWER_HAPPINESS = 4 +local POWER_HEALTH = -2 -- 0xFFFFFFFE as unsigned + +local POWER_NAMES = { + [0] = "Mana", + [1] = "Rage", + [2] = "Focus", + [3] = "Energy", + [4] = "Happiness", + [-2] = "Health", +} + +function GetPowerTypeName(powerType) + return POWER_NAMES[powerType] or "Unknown" +end + +local function createSpellEnergizeHandler(eventName) + return function(targetGuid, casterGuid, spellId, powerType, amount, periodic) + local powerName = GetPowerTypeName(powerType) + local periodicText = periodic == 1 and " (PERIODIC)" or "" + local spellName = GetSpellRecField and GetSpellRecField(spellId, "name") or spellId + print(string.format( + "%s: %s restored %d %s to %s with %s%s", + eventName, UnitName(casterGuid), amount, powerName, UnitName(targetGuid), tostring(spellName), periodicText + )) + end +end + +--Nampower:RegisterEvent("SPELL_HEAL_BY_SELF", createSpellHealHandler("SPELL_HEAL_BY_SELF")) +--Nampower:RegisterEvent("SPELL_HEAL_BY_OTHER", createSpellHealHandler("SPELL_HEAL_BY_OTHER")) +--Nampower:RegisterEvent("SPELL_HEAL_ON_SELF", createSpellHealHandler("SPELL_HEAL_ON_SELF")) +--Nampower:RegisterEvent("SPELL_ENERGIZE_BY_SELF", createSpellEnergizeHandler("SPELL_ENERGIZE_BY_SELF")) +--Nampower:RegisterEvent("SPELL_ENERGIZE_BY_OTHER", createSpellEnergizeHandler("SPELL_ENERGIZE_BY_OTHER")) +--Nampower:RegisterEvent("SPELL_ENERGIZE_ON_SELF", createSpellEnergizeHandler("SPELL_ENERGIZE_ON_SELF")) + +if not Nampower:HasMinimumVersion(2, 30, 0) then + return +end + +-- Aura Duration Update Events +-- BUFF_UPDATE_DURATION_SELF - aura slot 0-31 +-- DEBUFF_UPDATE_DURATION_SELF - aura slot 32-47 +-- Parameters: auraSlot, durationMs, expirationTimeMs + +local function createAuraDurationHandler(eventName) + return function(auraSlot, durationMs, expirationTimeMs) + print(string.format( + "%s: slot %d | Duration: %dms | Expires: %d", + eventName, auraSlot, durationMs, expirationTimeMs + )) + end +end +-- +--Nampower:RegisterEvent("DEBUFF_UPDATE_DURATION_SELF", createAuraDurationHandler("DEBUFF_UPDATE_DURATION_SELF")) +--Nampower:RegisterEvent("BUFF_UPDATE_DURATION_SELF", createAuraDurationHandler("BUFF_UPDATE_DURATION_SELF")) + +-- Aura Added/Removed Events +-- BUFF_ADDED_SELF, BUFF_REMOVED_SELF, BUFF_ADDED_OTHER, BUFF_REMOVED_OTHER +-- DEBUFF_ADDED_SELF, DEBUFF_REMOVED_SELF, DEBUFF_ADDED_OTHER, DEBUFF_REMOVED_OTHER +-- Parameters: guid, luaSlot, spellId, stackCount, auraLevel, auraSlot + +local function createAuraChangeHandler(eventName) + return function(guid, luaSlot, spellId, stackCount, auraLevel, auraSlot) + local spellName = GetSpellRecField and GetSpellRecField(spellId, "name") or spellId + print(string.format( + "%s: %s | luaSlot %d | %s (id:%d) | Stacks: %d | Level: %d | auraSlot: %d", + eventName, guid, luaSlot, tostring(spellName), spellId, stackCount, auraLevel, auraSlot + )) + end +end + +--Nampower:RegisterEvent("BUFF_ADDED_SELF", createAuraChangeHandler("BUFF_ADDED_SELF")) +--Nampower:RegisterEvent("BUFF_REMOVED_SELF", createAuraChangeHandler("BUFF_REMOVED_SELF")) +--Nampower:RegisterEvent("BUFF_ADDED_OTHER", createAuraChangeHandler("BUFF_ADDED_OTHER")) +--Nampower:RegisterEvent("BUFF_REMOVED_OTHER", createAuraChangeHandler("BUFF_REMOVED_OTHER")) +--Nampower:RegisterEvent("DEBUFF_ADDED_SELF", createAuraChangeHandler("DEBUFF_ADDED_SELF")) +--Nampower:RegisterEvent("DEBUFF_REMOVED_SELF", createAuraChangeHandler("DEBUFF_REMOVED_SELF")) +--Nampower:RegisterEvent("DEBUFF_ADDED_OTHER", createAuraChangeHandler("DEBUFF_ADDED_OTHER")) +--Nampower:RegisterEvent("DEBUFF_REMOVED_OTHER", createAuraChangeHandler("DEBUFF_REMOVED_OTHER")) + +-- Spell Damage Events (gated behind NP_EnableSpellDamageEvents CVar, default 0) +-- SPELL_DAMAGE_EVENT_SELF - Fires when the active player deals spell damage +-- SPELL_DAMAGE_EVENT_OTHER - Fires when someone other than the active player deals spell damage + +-- Spell Damage Hit Info Constants +local SPELL_DAMAGE_HIT_NORMAL = 0 +local SPELL_DAMAGE_HIT_CRIT = 2 + +-- Spell School Constants +local SPELL_SCHOOL_NORMAL = 0 +local SPELL_SCHOOL_HOLY = 1 +local SPELL_SCHOOL_FIRE = 2 +local SPELL_SCHOOL_NATURE = 3 +local SPELL_SCHOOL_FROST = 4 +local SPELL_SCHOOL_SHADOW = 5 +local SPELL_SCHOOL_ARCANE = 6 + +local SPELL_SCHOOL_NAMES = { + [0] = "Physical", + [1] = "Holy", + [2] = "Fire", + [3] = "Nature", + [4] = "Frost", + [5] = "Shadow", + [6] = "Arcane", +} + +function GetSpellSchoolName(spellSchool) + return SPELL_SCHOOL_NAMES[spellSchool] or "Unknown" +end + +local function createSpellDamageHandler(eventName) + return function(targetGuid, casterGuid, spellId, amount, mitigationStr, hitInfo, spellSchool, effectAuraStr) + local spellName = GetSpellRecField and GetSpellRecField(spellId, "name") or spellId + local schoolName = GetSpellSchoolName(spellSchool) + local critText = hitInfo == SPELL_DAMAGE_HIT_CRIT and " (CRIT)" or "" + print(string.format( + "%s: %s -> %s | %s (id:%d) | %d %s damage%s | Mitigation: %s | HitInfo: %d | Effects: %s", + eventName, casterGuid, targetGuid, tostring(spellName), spellId, amount, schoolName, critText, mitigationStr, hitInfo, effectAuraStr + )) + end +end + +--Nampower:RegisterEvent("SPELL_DAMAGE_EVENT_SELF", createSpellDamageHandler("SPELL_DAMAGE_EVENT_SELF")) +--Nampower:RegisterEvent("SPELL_DAMAGE_EVENT_OTHER", createSpellDamageHandler("SPELL_DAMAGE_EVENT_OTHER")) + +if not Nampower:HasMinimumVersion(2, 31, 0) then + return +end + +-- Spell Miss Events (gated behind NP_EnableSpellMissEvents CVar, default 0) +-- SPELL_MISS_SELF - Fires when the active player's spell misses/resists/is immune/etc +-- SPELL_MISS_OTHER - Fires when someone else's spell misses/resists/is immune/etc +-- Triggered by SMSG_SPELLLOGMISS, SMSG_PROCRESIST, and SMSG_SPELLORDAMAGE_IMMUNE + +-- SpellMissInfo Constants +local SPELL_MISS_NONE = 0 +local SPELL_MISS_MISS = 1 +local SPELL_MISS_RESIST = 2 +local SPELL_MISS_DODGE = 3 +local SPELL_MISS_PARRY = 4 +local SPELL_MISS_BLOCK = 5 +local SPELL_MISS_EVADE = 6 +local SPELL_MISS_IMMUNE = 7 +local SPELL_MISS_IMMUNE2 = 8 +local SPELL_MISS_DEFLECT = 9 +local SPELL_MISS_ABSORB = 10 +local SPELL_MISS_REFLECT = 11 + +local SPELL_MISS_NAMES = { + [0] = "None", + [1] = "Miss", + [2] = "Resist", + [3] = "Dodge", + [4] = "Parry", + [5] = "Block", + [6] = "Evade", + [7] = "Immune", + [8] = "Immune", + [9] = "Deflect", + [10] = "Absorb", + [11] = "Reflect", +} + +function GetSpellMissName(missInfo) + return SPELL_MISS_NAMES[missInfo] or "Unknown" +end + +local function createSpellMissHandler(eventName) + return function(casterGuid, targetGuid, spellId, missInfo) + local spellName = GetSpellRecField and GetSpellRecField(spellId, "name") or spellId + local missName = GetSpellMissName(missInfo) + print(string.format( + "%s: %s -> %s | %s (id:%d) | %s", + eventName, UnitName(casterGuid), UnitName(targetGuid), tostring(spellName), spellId, missName + )) + end +end + +--Nampower:RegisterEvent("SPELL_MISS_SELF", createSpellMissHandler("SPELL_MISS_SELF")) +--Nampower:RegisterEvent("SPELL_MISS_OTHER", createSpellMissHandler("SPELL_MISS_OTHER")) + +if not Nampower:HasMinimumVersion(2, 39, 0) then + return +end + +-- UNIT_INVENTORY_CHANGED - fires when a unit's inventory changes (standard named token variant) +-- Parameters: unit (string) - unit token like "player", "target", "party1", etc. + +-- UNIT_INVENTORY_CHANGED_GUID - fires when a unit's inventory changes (GUID variant) +-- Parameters: +-- guid (string) - unit GUID e.g. "0xF5300000000000A5" +-- isPlayer (int) - 1 if the unit is the active player, 0 otherwise +-- isTarget (int) - 1 if the unit is the current locked target, 0 otherwise +-- isMouseover (int) - 1 if the unit is the current mouseover, 0 otherwise +-- isPet (int) - 1 if the unit is the active player's pet, 0 otherwise +-- partyIndex (int) - party slot (1-4) if the unit is a party member, 0 otherwise +-- raidIndex (int) - raid slot (1-40) if the unit is a raid member, 0 otherwise + +local function onUnitInventoryChanged(unit) + print(string.format("UNIT_MODEL_CHANGED: %s", unit)) +end + +local function onUnitInventoryChangedGuid(guid, isPlayer, isTarget, isMouseover, isPet, partyIndex, raidIndex) + print(string.format( + "UNIT_MODEL_CHANGED_GUID: %s | isPlayer:%d isTarget:%d isMouseover:%d isPet:%d party:%d raid:%d", + guid, isPlayer, isTarget, isMouseover, isPet, partyIndex, raidIndex + )) +end + +--Nampower:RegisterEvent("UNIT_MODEL_CHANGED", onUnitInventoryChanged) +--Nampower:RegisterEvent("UNIT_MODEL_CHANGED_GUID", onUnitInventoryChangedGuid) + +-- UNIT_MANA - fires when a unit's mana changes (standard named token variant) +-- Parameters: unit (string) - unit token like "player", "target", "party1", etc. + +-- UNIT_MANA_GUID - fires when a unit's mana changes (GUID variant) +-- Parameters: +-- guid (string) - unit GUID e.g. "0xF5300000000000A5" +-- isPlayer (int) - 1 if the unit is the active player, 0 otherwise +-- isTarget (int) - 1 if the unit is the current locked target, 0 otherwise +-- isMouseover (int) - 1 if the unit is the current mouseover, 0 otherwise +-- isPet (int) - 1 if the unit is the active player's pet, 0 otherwise +-- partyIndex (int) - party slot (1-4) if the unit is a party member, 0 otherwise +-- raidIndex (int) - raid slot (1-40) if the unit is a raid member, 0 otherwise + +local function onUnitMana(unit) + print(string.format("UNIT_MANA: %s", unit)) +end + +local function onUnitManaGuid(guid, isPlayer, isTarget, isMouseover, isPet, partyIndex, raidIndex) + if UnitName(guid) == "Tankeboy" or UnitName(guid) == "Icansummon" then + print(string.format( + "UNIT_MANA_GUID: %s | isPlayer:%d isTarget:%d isMouseover:%d isPet:%d party:%d raid:%d", + UnitName(guid), isPlayer, isTarget, isMouseover, isPet, partyIndex, raidIndex + )) + end +end + +--Nampower:RegisterEvent("UNIT_MANA", onUnitMana) +--Nampower:RegisterEvent("UNIT_MANA_GUID", onUnitManaGuid) + +-- UNIT_COMBAT - fires when a unit participates in combat (standard named token variant) +-- Parameters: +-- unit (string) - unit token like "player", "target", "party1", etc. +-- action (string) - e.g. "WOUND", "MISS", "DODGE", "PARRY", "BLOCK", "EVADE", "IMMUNE", "REFLECT", "ABSORB", "INTERRUPT" +-- critical (string) - "CRITICAL" if a crit, "" otherwise +-- damage (int) - raw damage amount (0 for non-damaging outcomes) +-- school (int) - damage school (0=Physical, 1=Holy, 2=Fire, 3=Nature, 4=Frost, 5=Shadow, 6=Arcane) + +-- UNIT_COMBAT_GUID - fires once per combat feedback event, identified by GUID +-- Unlike other GUID events, carries full combat detail rather than unit membership flags. +-- Parameters: +-- guid (string) - unit GUID e.g. "0xF5300000000000A5" +-- action (string) - e.g. "WOUND", "MISS", "DODGE", "PARRY", "BLOCK", "EVADE", "IMMUNE", "REFLECT", "ABSORB", "INTERRUPT" +-- damage (int) - raw damage amount (0 for non-damaging outcomes like dodge/miss) +-- school (int) - damage school (0=Physical, 1=Holy, 2=Fire, 3=Nature, 4=Frost, 5=Shadow, 6=Arcane) +-- hitInfo (int) - hit info bitfield +-- isInteract (int) - 1 if the unit matches the current interact target, 0 otherwise +-- isPet (int) - 1 if the unit is the active player's pet, 0 otherwise +-- partyIndex (int) - party slot (1-4) if the unit is a party member, 0 otherwise +-- raidIndex (int) - raid slot (1-40) if the unit is a raid member, 0 otherwise + +local function onUnitCombat(unit, action, critical, damage, school) + local schoolName = GetSpellSchoolName(school) + local critText = critical == "CRITICAL" and " (CRIT)" or "" + print(string.format( + "UNIT_COMBAT: %s | %s | %d %s damage%s", + unit, action, damage, schoolName, critText + )) +end + +local function onUnitCombatGuid(guid, action, damage, school, hitInfo, isInteract, isPet, partyIndex, raidIndex) + local name = UnitName(guid) + local schoolName = GetSpellSchoolName(school) + print(string.format( + "UNIT_COMBAT_GUID: %s | %s | %d %s | hitInfo:%d isInteract:%d isPet:%d party:%d raid:%d", + name, action, damage, schoolName, hitInfo, isInteract, isPet, partyIndex, raidIndex + )) +end + +--Nampower:RegisterEvent("UNIT_COMBAT", onUnitCombat) +--Nampower:RegisterEvent("UNIT_COMBAT_GUID", onUnitCombatGuid) + +-- SPELL_CAST_EVENT - fires when you (or certain pets) initiate a spell cast +-- Triggered client-side before the cast is sent to the server. +-- Only fires for spells you initiated. +-- Parameters: +-- success (int) - 1 if cast succeeded, 0 if failed +-- spellId (int) - spell ID +-- castType (int) - see Cast Type Constants below +-- targetGuid (string) - guid string like "0xF5300000000000A5" +-- itemId (int) - item ID that triggered the spell, 0 if not item-triggered + +-- Cast Type Constants +local CAST_TYPE_NORMAL = 0 +local CAST_TYPE_NON_GCD = 1 +local CAST_TYPE_ON_SWING = 2 +local CAST_TYPE_CHANNEL = 3 +local CAST_TYPE_TARGETING = 4 +local CAST_TYPE_TARGETING_NON_GCD = 5 + +local CAST_TYPE_NAMES = { + [0] = "Normal", + [1] = "NonGCD", + [2] = "OnSwing", + [3] = "Channel", + [4] = "Targeting", + [5] = "TargetingNonGCD", +} + +function GetCastTypeName(castType) + return CAST_TYPE_NAMES[castType] or "Unknown" +end + +local function onSpellCastEvent(success, spellId, castType, targetGuid, itemId) + local spellName = GetSpellRecField and GetSpellRecField(spellId, "name") or spellId + local castTypeName = GetCastTypeName(castType) + local successText = success == 1 and "OK" or "FAILED" + local itemText = itemId ~= 0 and (" | Item: " .. tostring(itemId)) or "" + print(string.format( + "SPELL_CAST_EVENT: [%s] %s (id:%d) | Type: %s | Target: %s%s", + successText, tostring(spellName), spellId, castTypeName, tostring(targetGuid), itemText + )) +end + +--Nampower:RegisterEvent("SPELL_CAST_EVENT", onSpellCastEvent) + +-- UNIT_AURA_GUID - fires when a unit's aura state changes (GUID variant) +-- All GUID events share the same parameter format: +-- guid (string) - unit guid like "0xF5300000000000A5" +-- isPlayer (int) - 1 if the unit is the active player, 0 otherwise +-- isTarget (int) - 1 if the unit is the current locked target, 0 otherwise +-- isMouseover (int) - 1 if the unit is the current mouseover, 0 otherwise +-- isPet (int) - 1 if the unit is the active player's pet, 0 otherwise +-- partyIndex (int) - party slot (1-4) if the unit is a party member, 0 otherwise +-- raidIndex (int) - raid slot (1-40) if the unit is a raid member, 0 otherwise +local function onUnitGuid(guid, isPlayer, isTarget, isMouseover, isPet, partyIndex, raidIndex) + isPlayer = isPlayer or 0 + isTarget = isTarget or 0 + isMouseover = isMouseover or 0 + isPet = isPet or 0 + partyIndex = partyIndex or 0 + raidIndex = raidIndex or 0 + print(string.format( + "%s: %s | isPlayer:%d isTarget:%d isMouseover:%d isPet:%d party:%d raid:%d", + "UNIT_AURA_GUID", tostring(UnitName(guid) or guid), isPlayer, isTarget, isMouseover, isPet, partyIndex, raidIndex + )) +end + +--Nampower:RegisterEvent("UNIT_AURA_GUID", onUnitGuid) + +if not Nampower:HasMinimumVersion(3, 4, 0) then + return +end + +-- ENVIRONMENTAL_DMG_SELF / ENVIRONMENTAL_DMG_OTHER +-- Parameters: +-- unitGuid (string) - guid of the unit that took damage +-- dmgType (int) - environmental damage type +-- damage (int) - amount of damage taken +-- absorb (int) - amount of damage absorbed +-- resist (int) - amount of damage resisted +local ENV_DMG_NAMES = { + [0] = "Exhausted", + [1] = "Drowning", + [2] = "Fall", + [3] = "Lava", + [4] = "Slime", + [5] = "Fire", + [6] = "FallToVoid", +} + +local function onEnvironmentalDmg(unitGuid, dmgType, damage, absorb, resist) + dmgType = dmgType or -1 + damage = damage or 0 + absorb = absorb or 0 + resist = resist or 0 + print(string.format( + "ENVIRONMENTAL_DMG: %s took %d %s damage (absorbed:%d resisted:%d)", + tostring(unitGuid), damage, ENV_DMG_NAMES[dmgType] or "Unknown", absorb, resist + )) +end + +--Nampower:RegisterEvent("ENVIRONMENTAL_DMG_SELF", onEnvironmentalDmg) +--Nampower:RegisterEvent("ENVIRONMENTAL_DMG_OTHER", onEnvironmentalDmg) + +-- DAMAGE_SHIELD_SELF / DAMAGE_SHIELD_OTHER +-- Parameters: +-- unitGuid (string) - guid of shield owner +-- targetGuid (string) - guid of attacker taking reflected damage +-- damage (int) - amount of shield damage dealt +-- spellSchool (int) - school of shield damage +local SCHOOL_NAMES = { + [0] = "Physical", + [1] = "Holy", + [2] = "Fire", + [3] = "Nature", + [4] = "Frost", + [5] = "Shadow", + [6] = "Arcane", +} + +local function onDamageShield(unitGuid, targetGuid, damage, spellSchool) + damage = damage or 0 + spellSchool = spellSchool or -1 + print(string.format( + "DAMAGE_SHIELD: %s dealt %d %s damage to %s", + tostring(unitGuid), damage, SCHOOL_NAMES[spellSchool] or "Unknown", tostring(targetGuid) + )) +end + +--Nampower:RegisterEvent("DAMAGE_SHIELD_SELF", onDamageShield) +--Nampower:RegisterEvent("DAMAGE_SHIELD_OTHER", onDamageShield) + +-- SPELL_DISPEL_BY_SELF / SPELL_DISPEL_BY_OTHER +-- Parameters: +-- casterGuid (string) - guid of dispel caster +-- targetGuid (string) - guid of dispelled unit +-- spellId (int) - dispelled spell id +local function onSpellDispel(casterGuid, targetGuid, spellId) + spellId = spellId or 0 + local spellName = GetSpellRecField and GetSpellRecField(spellId, "name") or spellId + print(string.format( + "SPELL_DISPEL_BY: %s dispelled %s (id:%d) from %s", + tostring(casterGuid), tostring(spellName), spellId, tostring(targetGuid) + )) +end + +--Nampower:RegisterEvent("SPELL_DISPEL_BY_SELF", onSpellDispel) +--Nampower:RegisterEvent("SPELL_DISPEL_BY_OTHER", onSpellDispel) + +-- PrintSpellRange(rangeIndex) +-- Prints the SpellRange DBC record for the given index using GetSpellRangeData. +-- GetSpellRangeData returns: minRange, maxRange, flags, name +function PrintSpellRange(rangeIndex) + if not GetSpellRangeData then + print("GetSpellRangeData is not available") + return + end + local minRange, maxRange, flags, name = GetSpellRangeData(rangeIndex) + if minRange == nil then + print(string.format("PrintSpellRange(%d): no record found", rangeIndex)) + return + end + print(string.format( + "SpellRange[%d]: name=%q min=%.2f max=%.2f flags=0x%08X", + rangeIndex, tostring(name), minRange, maxRange, flags + )) +end diff --git a/Payload/Interface/Addons/nampowersettings/img.png b/Payload/Interface/Addons/nampowersettings/img.png deleted file mode 100644 index 0315924380b673522a27ca0b31d9b9df9796e9fd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18926 zcmV)IK)k<+P)mHpv9D7>se0rSty3s;h5x-M%w2uYVz!@9ptSuWiM6PXh+q ztFgAD1_K>s80#y=4FtbFgQ75f1OG#L)wlSlUyHWBV&`>_7z$?=8c@ zUB%eHvj~g3N^oR(n$s^h?XF?Masr}R7=Td2Z~S9IXkYr1jv>TcY5T_0|_suMSyX~&hv z8gbd-I=t?58=ZI1u@$d7)ruP~Z^!j#+Hm#B7F>5(8*aI>OPpUr=hsu78!zt=`K~(A zgzG7t!&e?_!kHuWI8N<7N_BF7k5FF^?JdV~I_GpQcN4XR?Qwf8z%6!*N@}DyT@_g z?ZdeCH20}ljKkG*JWX|;p}Ma=Nntv2JFcNVUqk2DQJzzDy$?pwA z?fKZZBOePCcbNLmW5Cx$%rIMx>Gb>CmOMTOEwN{%EXDe9Gsl@TFArU9l2QAk%tqz^KoiV zK2BOVzAGO`cjn{pcFMCYPaF?fSRyPE4sN5lxt+`B;_w{JOD;n=wp$(3Ysik*�%0r;zW~y`3bf##-k@-Rzk0PAfSBldIN^xeP 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 N002ovPDHLkV1nTrGvfdN diff --git a/Payload/Interface/Addons/nampowersettings/libs/AceAddon-2.0/AceAddon-2.0.lua b/Payload/Interface/Addons/nampowersettings/libs/AceAddon-2.0/AceAddon-2.0.lua index 1c5e2d5..0299931 100644 --- a/Payload/Interface/Addons/nampowersettings/libs/AceAddon-2.0/AceAddon-2.0.lua +++ b/Payload/Interface/Addons/nampowersettings/libs/AceAddon-2.0/AceAddon-2.0.lua @@ -1,1129 +1,1129 @@ ---[[ -Name: AceAddon-2.0 -Revision: $Rev: 17957 $ -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/AceAddon-2.0 -SVN: http://svn.wowace.com/root/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 -]] - -local MAJOR_VERSION = "AceAddon-2.0" -local MINOR_VERSION = "$Revision: 17958 $" - --- 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 loadstring("return function(...) return ... end") and AceLibrary:HasInstance(MAJOR_VERSION) then return end -- lua51 check -if not AceLibrary:HasInstance("AceOO-2.0") then error(MAJOR_VERSION .. " requires AceOO-2.0.") end - -local function safecall(func,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10) - local success, err = pcall(func,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10) - if not success then geterrorhandler()(err) end -end - --- Localization -local STANDBY, TITLE, NOTES, VERSION, AUTHOR, DATE, CATEGORY, EMAIL, CREDITS, WEBSITE, COMMANDS, CATEGORIES, ABOUT, 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 - COMMANDS = "Commands" - - ABOUT = "\195\188ber" - PRINT_ADDON_INFO = "Gibt Addondaten aus" - - CATEGORIES = { - ["Action Bars"] = "Aktionsleisten", - ["Auction"] = "Auktion", - ["Audio"] = "Audio", - ["Battlegrounds/PvP"] = "Schlachtfeld/PvP", - ["Buffs"] = "Buffs", - ["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", -- noone use "Brecher"... - ["Caster"] = "Caster", - ["Combat"] = "Kampf", - ["Compilations"] = "Compilations", -- whats that o_O - ["Data Export"] = "Datenexport", - ["Development Tools"] = "Entwicklungs Tools", - ["Guild"] = "Gilde", - ["Frame Modification"] = "Frame Modifikation", - ["Interface Enhancements"] = "Interface Verbesserungen", - ["Inventory"] = "Inventar", - ["Library"] = "Library", - ["Map"] = "Map", - ["Mail"] = "Mail", - ["Miscellaneous"] = "Diverses", - ["Quest"] = "Quest", - ["Raid"] = "Schlachtzug", - ["Tradeskill"] = "Handelsf\195\164higkeit", - ["UnitFrame"] = "UnitFrame", - } -elseif GetLocale() == "esES" then - STANDBY = "|cffff5050(Espera)|r" - - TITLE = "T\195\173tulo" - NOTES = "Notas" - VERSION = "Versi\195\179n" - AUTHOR = "Autor" - DATE = "Fecha" - CATEGORY = "Categor\195\173a" - EMAIL = "E-mail" - WEBSITE = "Sitio de Web" - - ABOUT = "Sobre" - PRINT_ADDON_INFO = "Publica informaci\195\179n sobre addon" - - CATEGORIES = { - ["Action Bars"] = "Barras de Acci\195\179n", - ["Auction"] = "Subasta", - ["Audio"] = "Audio", - ["Battlegrounds/PvP"] = "Campos de Batalla/JcJ", - ["Buffs"] = "Buffs", - ["Chat/Communication"] = "Chat/Communicaci\195\179n", - ["Druid"] = "Druida", - ["Hunter"] = "Cazador", - ["Mage"] = "Mago", - ["Paladin"] = "Palad\195\173n", - ["Priest"] = "Sacerdote", - ["Rogue"] = "P\195\173caro", - ["Shaman"] = "Cham\195\161n", - ["Warlock"] = "Brujo", - ["Warrior"] = "Guerrero", - ["Healer"] = "Sanador", - ["Tank"] = "Tanque", - ["Caster"] = "Hechicero", - ["Combat"] = "Combate", - ["Compilations"] = "Compilaciones", - ["Data Export"] = "Exporta de Datos", - ["Development Tools"] = "Herramientas de Desarrollo", - ["Guild"] = "Hermandad", - ["Frame Modification"] = "Modificaci\195\179n del marco", - ["Interface Enhancements"] = "Mejora de Interfaz", - ["Inventory"] = "Inventario", - ["Library"] = "Biblioteca", - ["Map"] = "Mapa", - ["Mail"] = "Correo", - ["Miscellaneous"] = "Diverso", - ["Quest"] = "Misi\195\179n", - ["Raid"] = "Banda", - ["Tradeskill"] = "Habilidad de Comercio", - ["UnitFrame"] = "Marco de Unidad", - } -elseif GetLocale() == "frFR" then - STANDBY = "|cffff5050(attente)|r" - - TITLE = "Titre" - NOTES = "Notes" - VERSION = "Version" - AUTHOR = "Auteur" - DATE = "Date" - CATEGORY = "Cat\195\169gorie" - EMAIL = "E-mail" - WEBSITE = "Site web" - CREDITS = "Credits" -- fix - COMMANDS = "Commands" - - ABOUT = "A propos" - PRINT_ADDON_INFO = "Afficher les informations sur l'addon" - - CATEGORIES = { - ["Action Bars"] = "Barres d'action", - ["Auction"] = "H\195\180tel 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\195\170tre", - ["Rogue"] = "Voleur", - ["Shaman"] = "Chaman", - ["Warlock"] = "D\195\169moniste", - ["Warrior"] = "Guerrier", - ["Healer"] = "Soigneur", - ["Tank"] = "Tank", - ["Caster"] = "Casteur", - ["Combat"] = "Combat", - ["Compilations"] = "Compilations", - ["Data Export"] = "Exportation de donn\195\169es", - ["Development Tools"] = "Outils de d\195\169veloppement", - ["Guild"] = "Guilde", - ["Frame Modification"] = "Modification des fen\195\170tres", - ["Interface Enhancements"] = "Am\195\169liorations de l'interface", - ["Inventory"] = "Inventaire", - ["Library"] = "Biblioth\195\168ques", - ["Map"] = "Carte", - ["Mail"] = "Courrier", - ["Miscellaneous"] = "Divers", - ["Quest"] = "Qu\195\170tes", - ["Raid"] = "Raid", - ["Tradeskill"] = "M\195\169tiers", - ["UnitFrame"] = "Fen\195\170tres d'unit\195\169", - } -elseif GetLocale() == "koKR" then - STANDBY = "|cffff5050(사용가능)|r" - - TITLE = "제목" - NOTES = "노트" - VERSION = "버전" - AUTHOR = "저작자" - DATE = "날짜" - CATEGORY = "분류" - EMAIL = "E-mail" - WEBSITE = "웹사이트" - CREDITS = "Credits" -- fix - COMMANDS = "Commands" - - 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 - COMMANDS = "Commands" - - 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(\230\154\130\230\140\130)|r" - - TITLE = "\230\160\135\233\162\152" - NOTES = "\233\153\132\230\179\168" - VERSION = "\231\137\136\230\156\172" - AUTHOR = "\228\189\156\232\128\133" - DATE = "\230\151\165\230\156\159" - CATEGORY = "\229\136\134\231\177\187" - EMAIL = "\231\148\181\229\173\144\233\130\174\228\187\182" - WEBSITE = "\231\189\145\231\171\153" - CREDITS = "Credits" -- fix - COMMANDS = "Commands" - - ABOUT = "\229\133\179\228\186\142" - PRINT_ADDON_INFO = "\229\141\176\229\136\151\229\135\186\230\143\146\228\187\182\228\191\161\230\129\175" - - CATEGORIES = { - ["Action Bars"] = "\229\138\168\228\189\156\230\157\161", - ["Auction"] = "\230\139\141\229\141\150", - ["Audio"] = "\233\159\179\233\162\145", - ["Battlegrounds/PvP"] = "\230\136\152\229\156\186/PvP", - ["Buffs"] = "\229\162\158\231\155\138\233\173\148\230\179\149", - ["Chat/Communication"] = "\232\129\138\229\164\169/\228\186\164\230\181\129", - ["Druid"] = "\229\190\183\233\178\129\228\188\138", - ["Hunter"] = "\231\140\142\228\186\186", - ["Mage"] = "\230\179\149\229\184\136", - ["Paladin"] = "\229\156\163\233\170\145\229\163\171", - ["Priest"] = "\231\137\167\229\184\136", - ["Rogue"] = "\231\155\151\232\180\188", - ["Shaman"] = "\232\144\168\230\187\161\231\165\173\229\143\184", - ["Warlock"] = "\230\156\175\229\163\171", - ["Warrior"] = "\230\136\152\229\163\171", --- ["Healer"] = "\230\178\187\231\150\151\228\191\157\233\154\156", --- ["Tank"] = "\232\191\145\230\136\152\230\142\167\229\136\182", --- ["Caster"] = "\232\191\156\231\168\139\232\190\147\229\135\186", - ["Combat"] = "\230\136\152\230\150\151", - ["Compilations"] = "\231\188\150\232\175\145", - ["Data Export"] = "\230\149\176\230\141\174\229\175\188\229\135\186", - ["Development Tools"] = "\229\188\128\229\143\145\229\183\165\229\133\183", - ["Guild"] = "\229\133\172\228\188\154", - ["Frame Modification"] = "\230\161\134\230\158\182\228\191\174\230\148\185", - ["Interface Enhancements"] = "\231\149\140\233\157\162\229\162\158\229\188\186", - ["Inventory"] = "\232\131\140\229\140\133", - ["Library"] = "\229\186\147", - ["Map"] = "\229\156\176\229\155\190", - ["Mail"] = "\233\130\174\228\187\182", - ["Miscellaneous"] = "\230\157\130\233\161\185", - ["Quest"] = "\228\187\187\229\138\161", - ["Raid"] = "\229\155\162\233\152\159", - ["Tradeskill"] = "\229\149\134\228\184\154\230\138\128\232\131\189", - ["UnitFrame"] = "\229\164\180\229\131\143\230\161\134\230\158\182", - } -elseif GetLocale() == "ruRU" then - STANDBY = "|cffff5050(в режиме ожидания)|r" - - TITLE = "Название" - NOTES = "Описание" - VERSION = "Версия" - AUTHOR = "Автор" - DATE = "Дата" - CATEGORY = "Категория" - EMAIL = "E-mail" - WEBSITE = "Сайт" - CREDITS = "Титры" - COMMANDS = "Команды" - - 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"] = "Фреймы персонажей", - } - 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" - COMMANDS = "Commands" - - ABOUT = "About" - PRINT_ADDON_INFO = "Print out addon info" - - 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 = string.lower(key) - for k,v in pairs(CATEGORIES) do - if string.lower(k) == 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:ToString() - return "AceAddon" -end - -local function print(text) - DEFAULT_CHAT_FRAME:AddMessage(text) -end - -function AceAddon:ADDON_LOADED(name) - while table.getn(self.nextAddon) > 0 do - local addon = table.remove(self.nextAddon, 1) - table.insert(self.addons, addon) - if not self.addons[name] then - self.addons[name] = addon - end - 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 - local current = self.class - while true do - if current == AceOO.Class 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) - 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 - end - else - if not AceAddon.addonsToOnEnable then - AceAddon.addonsToOnEnable = {} - end - table.insert(AceAddon.addonsToOnEnable, self) - end -end - -local function stripSpaces(text) - if type(text) == "string" then - return (string.gsub(string.gsub(text, "^%s*(.-)%s*$", "%1"), "%s%s+", " ")) - end - return text -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 addon.title then - local num = string.find(addon.title, " |cff7fff7f %-Ace2%-|r$") - if num then - addon.title = string.sub(addon.title, 1, num - 1) - end - addon.title = stripSpaces(addon.title) - end - - if addon.notes == nil then - addon.notes = GetAddOnMetadata(name, "Notes") - addon.notes = stripSpaces(addon.notes) - end - if addon.version == nil then - addon.version = GetAddOnMetadata(name, "Version") - end - if addon.version then - if string.find(addon.version, "%$Revision: (%d+) %$") then - addon.version = string.gsub(addon.version, "%$Revision: (%d+) %$", "%1") - elseif string.find(addon.version, "%$Rev: (%d+) %$") then - addon.version = string.gsub(addon.version, "%$Rev: (%d+) %$", "%1") - elseif string.find(addon.version, "%$LastChangedRevision: (%d+) %$") then - addon.version = string.gsub(addon.version, "%$LastChangedRevision: (%d+) %$", "%1") - end - end - addon.version = stripSpaces(addon.version) - if addon.author == nil then - addon.author = GetAddOnMetadata(name, "Author") - addon.author = stripSpaces(addon.author) - end - if addon.credits == nil then - addon.credits = GetAddOnMetadata(name, "X-Credits") - addon.credits = stripSpaces(addon.credits) - end - if addon.date == nil then - addon.date = GetAddOnMetadata(name, "X-Date") or GetAddOnMetadata(name, "X-ReleaseDate") - end - if addon.date then - if string.find(addon.date, "%$Date: (.-) %$") then - addon.date = string.gsub(addon.date, "%$Date: (.-) %$", "%1") - elseif string.find(addon.date, "%$LastChangedDate: (.-) %$") then - addon.date = string.gsub(addon.date, "%$LastChangedDate: (.-) %$", "%1") - end - end - addon.date = stripSpaces(addon.date) - - if addon.category == nil then - addon.category = GetAddOnMetadata(name, "X-Category") - addon.category = stripSpaces(addon.category) - end - if addon.email == nil then - addon.email = GetAddOnMetadata(name, "X-eMail") or GetAddOnMetadata(name, "X-Email") - addon.email = stripSpaces(addon.email) - end - if addon.website == nil then - addon.website = GetAddOnMetadata(name, "X-Website") - addon.website = stripSpaces(addon.website) - end - if addon.commands == nil then - addon.commands = GetAddOnMetadata(name, "X-Commands") - addon.commands = stripSpaces(addon.commands) - end - end - local current = addon.class - while true do - if current == AceOO.Class 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 - if type(addon.OnInitialize) == "function" then - safecall(addon.OnInitialize, addon, name) - end - if AceEvent then - AceEvent:TriggerEvent("Ace2_AddonInitialized", addon) - end - RegisterOnEnable(addon) -end - -function AceAddon.prototype:PrintAddonInfo() - local x - if self.title then - x = "|cffffff7f" .. tostring(self.title) .. "|r" - elseif 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 self.version then - x = x .. " - |cffffff7f" .. tostring(self.version) .. "|r" - end - if self.notes then - x = x .. " - " .. tostring(self.notes) - end - print(x) - if self.author then - print(" - |cffffff7f" .. AUTHOR .. ":|r " .. tostring(self.author)) - end - if self.credits then - print(" - |cffffff7f" .. CREDITS .. ":|r " .. tostring(self.credits)) - end - if 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 self.email then - print(" - |cffffff7f" .. EMAIL .. ":|r " .. tostring(self.email)) - end - if self.website then - print(" - |cffffff7f" .. WEBSITE .. ":|r " .. tostring(self.website)) - end - if self.commands then - print(" - |cffffff7f" .. COMMANDS .. ":|r " .. tostring(self.commands)) - 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 table.getn(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 - local current = addon.class - while true do - if current == AceOO.Class 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) - end - end - end - current = current.super - end - if type(addon.OnEnable) == "function" then - safecall(addon.OnEnable,addon) - end - if AceEvent then - AceEvent:TriggerEvent("Ace2_AddonEnabled", addon) - 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", true) - 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, m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11, m12, m13, m14, m15, m16, m17, m18, m19, m20) - local class = AceAddon:pcall(AceOO.Classpool, self, m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11, m12, m13, m14, m15, m16, m17, m18, m19, m20) - 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 = string.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(string.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 - local addon = self.addons[name] - if not AceCoreAddon or not AceCoreAddon:IsModule(addon) then - listAddon(addon) - end - else - local s = " - " .. tostring(GetAddOnMetadata(i, "Title") or name) - local version = GetAddOnMetadata(i, "Version") - if version then - if string.find(version, "%$Revision: (%d+) %$") then - version = string.gsub(version, "%$Revision: (%d+) %$", "%1") - elseif string.find(version, "%$Rev: (%d+) %$") then - version = string.gsub(version, "%$Rev: (%d+) %$", "%1") - elseif string.find(version, "%$LastChangedRevision: (%d+) %$") then - version = string.gsub(version, "%$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." .. string.gsub(MINOR_VERSION, "%$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") - local AceCoreAddon = AceLibrary:HasInstance("AceCoreAddon-2.0") and AceLibrary("AceCoreAddon-2.0") - table.sort(self.addons, mySort) - for _,v in ipairs(self.addons) do - if not AceCoreAddon or not AceCoreAddon:IsModule(v) then - listAddon(v) - end - end - end - }, - all = { - desc = "List all addons", - name = "All", - type = "execute", - func = function() - print("|cffffff7fAddon list:|r") - local AceCoreAddon = AceLibrary:HasInstance("AceCoreAddon-2.0") and AceLibrary("AceCoreAddon-2.0") - 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 AceCoreAddon = AceLibrary:HasInstance("AceCoreAddon-2.0") and AceLibrary("AceCoreAddon-2.0") - 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 AceCoreAddon = AceLibrary:HasInstance("AceCoreAddon-2.0") and AceLibrary("AceCoreAddon-2.0") - 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 AceCoreAddon = AceLibrary:HasInstance("AceCoreAddon-2.0") and AceLibrary("AceCoreAddon-2.0") - 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 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 = "", - input = true, - get = false, - set = function(...) - for i,v in ipairs(arg) do - arg[i] = string.lower(string.gsub(string.gsub(v, '%*', '.*'), '%%', '%%%%')) - end - local count = GetNumAddOns() - for i = 1, count do - local name = GetAddOnInfo(i) - local good = true - for _,v in ipairs(arg) do - if not string.find(string.lower(name), v) then - good = false - break - end - end - if good then - listNormalAddon(i) - end - end - end - } - }, - }, - enable = { - desc = "Enable addon", - name = "Enable", - type = "text", - usage = "", - get = false, - set = function(text) - local name,title,_,_,_,reason = GetAddOnInfo(text) - if reason == "MISSING" then - print(string.format("|cffffff7fAce2:|r AddOn %q does not exist", text)) - else - EnableAddOn(text) - print(string.format("|cffffff7fAce2:|r %s is now enabled", title or name)) - end - end, - }, - disable = { - desc = "Disable addon", - name = "Disable", - type = "text", - usage = "", - get = false, - set = function(text) - local name,title,_,_,_,reason = GetAddOnInfo(text) - if reason == "MISSING" then - print(string.format("|cffffff7fAce2:|r AddOn %q does not exist", text)) - else - DisableAddOn(text) - print(string.format("|cffffff7fAce2:|r %s is now disabled", title or name)) - end - end, - }, - load = { - desc = "Load addon", - name = "Load", - type = "text", - usage = "", - get = false, - set = function(text) - local name,title,_,_,loadable,reason = GetAddOnInfo(text) - if reason == "MISSING" then - print(string.format("|cffffff7fAce2:|r AddOn %q does not exist.", text)) - elseif not loadable then - print(string.format("|cffffff7fAce2:|r AddOn %q is not loadable. Reason: %s", text, reason)) - else - LoadAddOn(text) - print(string.format("|cffffff7fAce2:|r %s is now loaded", title or name)) - end - end - }, - info = { - desc = "Display information", - name = "Information", - type = "execute", - func = function() - local mem, threshold = gcinfo() - print(string.format(" - |cffffff7fMemory usage [|r%.3f MiB|cffffff7f]|r", mem / 1024)) - print(string.format(" - |cffffff7fThreshold [|r%.3f MiB|cffffff7f]|r", threshold / 1024)) - print(string.format(" - |cffffff7fFramerate [|r%.0f fps|cffffff7f]|r", GetFramerate())) - local bandwidthIn, bandwidthOut, latency = GetNetStats() - bandwidthIn, bandwidthOut = floor(bandwidthIn * 1024), floor(bandwidthOut * 1024) - print(string.format(" - |cffffff7fLatency [|r%.0f ms|cffffff7f]|r", latency)) - print(string.format(" - |cffffff7fBandwidth in [|r%.0f B/s|cffffff7f]|r", bandwidthIn)) - print(string.format(" - |cffffff7fBandwidth out [|r%.0f B/s|cffffff7f]|r", bandwidthOut)) - print(string.format(" - |cffffff7fTotal addons [|r%d|cffffff7f]|r", GetNumAddOns())) - print(string.format(" - |cffffff7fAce2 addons [|r%d|cffffff7f]|r", table.getn(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 = GetAddOnInfo(i) - if not IsActive or not loadable then - disabled = disabled + 1 - else - enabled = enabled + 1 - end - end - print(string.format(" - |cffffff7fAce 1.x addons [|r%d|cffffff7f]|r", ace)) - print(string.format(" - |cffffff7fLoadOnDemand addons [|r%d|cffffff7f]|r", lod)) - print(string.format(" - |cffffff7fenabled addons [|r%d|cffffff7f]|r", enabled)) - print(string.format(" - |cffffff7fdisabled addons [|r%d|cffffff7f]|r", 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(string.format(" - |cffffff7fAceLibrary instances [|r%d|cffffff7f]|r", libs)) - end - } - } - }) - elseif major == "AceModuleCore-2.0" then - AceModuleCore = instance - end -end - -local function activate(self, oldLib, oldDeactivate) - AceAddon = self - - if oldLib then - self.playerLoginFired = oldLib.playerLoginFired or DEFAULT_CHAT_FRAME and DEFAULT_CHAT_FRAME.defaultLanguage - self.addonsToOnEnable = oldLib.addonsToOnEnable - self.addons = oldLib.addons - self.nextAddon = oldLib.nextAddon - self.addonsStarted = oldLib.addonsStarted - end - if not self.addons then - self.addons = {} - end - if not self.nextAddon then - self.nextAddon = {} - end - if not self.addonsStarted then - self.addonsStarted = {} - end - if oldDeactivate then - oldDeactivate(oldLib) - end -end - -AceLibrary:Register(AceAddon, MAJOR_VERSION, MINOR_VERSION, activate, nil, external) -AceAddon = AceLibrary(MAJOR_VERSION) +--[[ +Name: AceAddon-2.0 +Revision: $Rev: 17957 $ +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/AceAddon-2.0 +SVN: http://svn.wowace.com/root/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 +]] + +local MAJOR_VERSION = "AceAddon-2.0" +local MINOR_VERSION = "$Revision: 17958 $" + +-- 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 loadstring("return function(...) return ... end") and AceLibrary:HasInstance(MAJOR_VERSION) then return end -- lua51 check +if not AceLibrary:HasInstance("AceOO-2.0") then error(MAJOR_VERSION .. " requires AceOO-2.0.") end + +local function safecall(func,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10) + local success, err = pcall(func,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10) + if not success then geterrorhandler()(err) end +end + +-- Localization +local STANDBY, TITLE, NOTES, VERSION, AUTHOR, DATE, CATEGORY, EMAIL, CREDITS, WEBSITE, COMMANDS, CATEGORIES, ABOUT, 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 + COMMANDS = "Commands" + + ABOUT = "\195\188ber" + PRINT_ADDON_INFO = "Gibt Addondaten aus" + + CATEGORIES = { + ["Action Bars"] = "Aktionsleisten", + ["Auction"] = "Auktion", + ["Audio"] = "Audio", + ["Battlegrounds/PvP"] = "Schlachtfeld/PvP", + ["Buffs"] = "Buffs", + ["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", -- noone use "Brecher"... + ["Caster"] = "Caster", + ["Combat"] = "Kampf", + ["Compilations"] = "Compilations", -- whats that o_O + ["Data Export"] = "Datenexport", + ["Development Tools"] = "Entwicklungs Tools", + ["Guild"] = "Gilde", + ["Frame Modification"] = "Frame Modifikation", + ["Interface Enhancements"] = "Interface Verbesserungen", + ["Inventory"] = "Inventar", + ["Library"] = "Library", + ["Map"] = "Map", + ["Mail"] = "Mail", + ["Miscellaneous"] = "Diverses", + ["Quest"] = "Quest", + ["Raid"] = "Schlachtzug", + ["Tradeskill"] = "Handelsf\195\164higkeit", + ["UnitFrame"] = "UnitFrame", + } +elseif GetLocale() == "esES" then + STANDBY = "|cffff5050(Espera)|r" + + TITLE = "T\195\173tulo" + NOTES = "Notas" + VERSION = "Versi\195\179n" + AUTHOR = "Autor" + DATE = "Fecha" + CATEGORY = "Categor\195\173a" + EMAIL = "E-mail" + WEBSITE = "Sitio de Web" + + ABOUT = "Sobre" + PRINT_ADDON_INFO = "Publica informaci\195\179n sobre addon" + + CATEGORIES = { + ["Action Bars"] = "Barras de Acci\195\179n", + ["Auction"] = "Subasta", + ["Audio"] = "Audio", + ["Battlegrounds/PvP"] = "Campos de Batalla/JcJ", + ["Buffs"] = "Buffs", + ["Chat/Communication"] = "Chat/Communicaci\195\179n", + ["Druid"] = "Druida", + ["Hunter"] = "Cazador", + ["Mage"] = "Mago", + ["Paladin"] = "Palad\195\173n", + ["Priest"] = "Sacerdote", + ["Rogue"] = "P\195\173caro", + ["Shaman"] = "Cham\195\161n", + ["Warlock"] = "Brujo", + ["Warrior"] = "Guerrero", + ["Healer"] = "Sanador", + ["Tank"] = "Tanque", + ["Caster"] = "Hechicero", + ["Combat"] = "Combate", + ["Compilations"] = "Compilaciones", + ["Data Export"] = "Exporta de Datos", + ["Development Tools"] = "Herramientas de Desarrollo", + ["Guild"] = "Hermandad", + ["Frame Modification"] = "Modificaci\195\179n del marco", + ["Interface Enhancements"] = "Mejora de Interfaz", + ["Inventory"] = "Inventario", + ["Library"] = "Biblioteca", + ["Map"] = "Mapa", + ["Mail"] = "Correo", + ["Miscellaneous"] = "Diverso", + ["Quest"] = "Misi\195\179n", + ["Raid"] = "Banda", + ["Tradeskill"] = "Habilidad de Comercio", + ["UnitFrame"] = "Marco de Unidad", + } +elseif GetLocale() == "frFR" then + STANDBY = "|cffff5050(attente)|r" + + TITLE = "Titre" + NOTES = "Notes" + VERSION = "Version" + AUTHOR = "Auteur" + DATE = "Date" + CATEGORY = "Cat\195\169gorie" + EMAIL = "E-mail" + WEBSITE = "Site web" + CREDITS = "Credits" -- fix + COMMANDS = "Commands" + + ABOUT = "A propos" + PRINT_ADDON_INFO = "Afficher les informations sur l'addon" + + CATEGORIES = { + ["Action Bars"] = "Barres d'action", + ["Auction"] = "H\195\180tel 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\195\170tre", + ["Rogue"] = "Voleur", + ["Shaman"] = "Chaman", + ["Warlock"] = "D\195\169moniste", + ["Warrior"] = "Guerrier", + ["Healer"] = "Soigneur", + ["Tank"] = "Tank", + ["Caster"] = "Casteur", + ["Combat"] = "Combat", + ["Compilations"] = "Compilations", + ["Data Export"] = "Exportation de donn\195\169es", + ["Development Tools"] = "Outils de d\195\169veloppement", + ["Guild"] = "Guilde", + ["Frame Modification"] = "Modification des fen\195\170tres", + ["Interface Enhancements"] = "Am\195\169liorations de l'interface", + ["Inventory"] = "Inventaire", + ["Library"] = "Biblioth\195\168ques", + ["Map"] = "Carte", + ["Mail"] = "Courrier", + ["Miscellaneous"] = "Divers", + ["Quest"] = "Qu\195\170tes", + ["Raid"] = "Raid", + ["Tradeskill"] = "M\195\169tiers", + ["UnitFrame"] = "Fen\195\170tres d'unit\195\169", + } +elseif GetLocale() == "koKR" then + STANDBY = "|cffff5050(사용가능)|r" + + TITLE = "제목" + NOTES = "노트" + VERSION = "버전" + AUTHOR = "저작자" + DATE = "날짜" + CATEGORY = "분류" + EMAIL = "E-mail" + WEBSITE = "웹사이트" + CREDITS = "Credits" -- fix + COMMANDS = "Commands" + + 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 + COMMANDS = "Commands" + + 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(\230\154\130\230\140\130)|r" + + TITLE = "\230\160\135\233\162\152" + NOTES = "\233\153\132\230\179\168" + VERSION = "\231\137\136\230\156\172" + AUTHOR = "\228\189\156\232\128\133" + DATE = "\230\151\165\230\156\159" + CATEGORY = "\229\136\134\231\177\187" + EMAIL = "\231\148\181\229\173\144\233\130\174\228\187\182" + WEBSITE = "\231\189\145\231\171\153" + CREDITS = "Credits" -- fix + COMMANDS = "Commands" + + ABOUT = "\229\133\179\228\186\142" + PRINT_ADDON_INFO = "\229\141\176\229\136\151\229\135\186\230\143\146\228\187\182\228\191\161\230\129\175" + + CATEGORIES = { + ["Action Bars"] = "\229\138\168\228\189\156\230\157\161", + ["Auction"] = "\230\139\141\229\141\150", + ["Audio"] = "\233\159\179\233\162\145", + ["Battlegrounds/PvP"] = "\230\136\152\229\156\186/PvP", + ["Buffs"] = "\229\162\158\231\155\138\233\173\148\230\179\149", + ["Chat/Communication"] = "\232\129\138\229\164\169/\228\186\164\230\181\129", + ["Druid"] = "\229\190\183\233\178\129\228\188\138", + ["Hunter"] = "\231\140\142\228\186\186", + ["Mage"] = "\230\179\149\229\184\136", + ["Paladin"] = "\229\156\163\233\170\145\229\163\171", + ["Priest"] = "\231\137\167\229\184\136", + ["Rogue"] = "\231\155\151\232\180\188", + ["Shaman"] = "\232\144\168\230\187\161\231\165\173\229\143\184", + ["Warlock"] = "\230\156\175\229\163\171", + ["Warrior"] = "\230\136\152\229\163\171", +-- ["Healer"] = "\230\178\187\231\150\151\228\191\157\233\154\156", +-- ["Tank"] = "\232\191\145\230\136\152\230\142\167\229\136\182", +-- ["Caster"] = "\232\191\156\231\168\139\232\190\147\229\135\186", + ["Combat"] = "\230\136\152\230\150\151", + ["Compilations"] = "\231\188\150\232\175\145", + ["Data Export"] = "\230\149\176\230\141\174\229\175\188\229\135\186", + ["Development Tools"] = "\229\188\128\229\143\145\229\183\165\229\133\183", + ["Guild"] = "\229\133\172\228\188\154", + ["Frame Modification"] = "\230\161\134\230\158\182\228\191\174\230\148\185", + ["Interface Enhancements"] = "\231\149\140\233\157\162\229\162\158\229\188\186", + ["Inventory"] = "\232\131\140\229\140\133", + ["Library"] = "\229\186\147", + ["Map"] = "\229\156\176\229\155\190", + ["Mail"] = "\233\130\174\228\187\182", + ["Miscellaneous"] = "\230\157\130\233\161\185", + ["Quest"] = "\228\187\187\229\138\161", + ["Raid"] = "\229\155\162\233\152\159", + ["Tradeskill"] = "\229\149\134\228\184\154\230\138\128\232\131\189", + ["UnitFrame"] = "\229\164\180\229\131\143\230\161\134\230\158\182", + } +elseif GetLocale() == "ruRU" then + STANDBY = "|cffff5050(в режиме ожидания)|r" + + TITLE = "Название" + NOTES = "Описание" + VERSION = "Версия" + AUTHOR = "Автор" + DATE = "Дата" + CATEGORY = "Категория" + EMAIL = "E-mail" + WEBSITE = "Сайт" + CREDITS = "Титры" + COMMANDS = "Команды" + + 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"] = "Фреймы персонажей", + } + 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" + COMMANDS = "Commands" + + ABOUT = "About" + PRINT_ADDON_INFO = "Print out addon info" + + 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 = string.lower(key) + for k,v in pairs(CATEGORIES) do + if string.lower(k) == 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:ToString() + return "AceAddon" +end + +local function print(text) + DEFAULT_CHAT_FRAME:AddMessage(text) +end + +function AceAddon:ADDON_LOADED(name) + while table.getn(self.nextAddon) > 0 do + local addon = table.remove(self.nextAddon, 1) + table.insert(self.addons, addon) + if not self.addons[name] then + self.addons[name] = addon + end + 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 + local current = self.class + while true do + if current == AceOO.Class 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) + 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 + end + else + if not AceAddon.addonsToOnEnable then + AceAddon.addonsToOnEnable = {} + end + table.insert(AceAddon.addonsToOnEnable, self) + end +end + +local function stripSpaces(text) + if type(text) == "string" then + return (string.gsub(string.gsub(text, "^%s*(.-)%s*$", "%1"), "%s%s+", " ")) + end + return text +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 addon.title then + local num = string.find(addon.title, " |cff7fff7f %-Ace2%-|r$") + if num then + addon.title = string.sub(addon.title, 1, num - 1) + end + addon.title = stripSpaces(addon.title) + end + + if addon.notes == nil then + addon.notes = GetAddOnMetadata(name, "Notes") + addon.notes = stripSpaces(addon.notes) + end + if addon.version == nil then + addon.version = GetAddOnMetadata(name, "Version") + end + if addon.version then + if string.find(addon.version, "%$Revision: (%d+) %$") then + addon.version = string.gsub(addon.version, "%$Revision: (%d+) %$", "%1") + elseif string.find(addon.version, "%$Rev: (%d+) %$") then + addon.version = string.gsub(addon.version, "%$Rev: (%d+) %$", "%1") + elseif string.find(addon.version, "%$LastChangedRevision: (%d+) %$") then + addon.version = string.gsub(addon.version, "%$LastChangedRevision: (%d+) %$", "%1") + end + end + addon.version = stripSpaces(addon.version) + if addon.author == nil then + addon.author = GetAddOnMetadata(name, "Author") + addon.author = stripSpaces(addon.author) + end + if addon.credits == nil then + addon.credits = GetAddOnMetadata(name, "X-Credits") + addon.credits = stripSpaces(addon.credits) + end + if addon.date == nil then + addon.date = GetAddOnMetadata(name, "X-Date") or GetAddOnMetadata(name, "X-ReleaseDate") + end + if addon.date then + if string.find(addon.date, "%$Date: (.-) %$") then + addon.date = string.gsub(addon.date, "%$Date: (.-) %$", "%1") + elseif string.find(addon.date, "%$LastChangedDate: (.-) %$") then + addon.date = string.gsub(addon.date, "%$LastChangedDate: (.-) %$", "%1") + end + end + addon.date = stripSpaces(addon.date) + + if addon.category == nil then + addon.category = GetAddOnMetadata(name, "X-Category") + addon.category = stripSpaces(addon.category) + end + if addon.email == nil then + addon.email = GetAddOnMetadata(name, "X-eMail") or GetAddOnMetadata(name, "X-Email") + addon.email = stripSpaces(addon.email) + end + if addon.website == nil then + addon.website = GetAddOnMetadata(name, "X-Website") + addon.website = stripSpaces(addon.website) + end + if addon.commands == nil then + addon.commands = GetAddOnMetadata(name, "X-Commands") + addon.commands = stripSpaces(addon.commands) + end + end + local current = addon.class + while true do + if current == AceOO.Class 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 + if type(addon.OnInitialize) == "function" then + safecall(addon.OnInitialize, addon, name) + end + if AceEvent then + AceEvent:TriggerEvent("Ace2_AddonInitialized", addon) + end + RegisterOnEnable(addon) +end + +function AceAddon.prototype:PrintAddonInfo() + local x + if self.title then + x = "|cffffff7f" .. tostring(self.title) .. "|r" + elseif 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 self.version then + x = x .. " - |cffffff7f" .. tostring(self.version) .. "|r" + end + if self.notes then + x = x .. " - " .. tostring(self.notes) + end + print(x) + if self.author then + print(" - |cffffff7f" .. AUTHOR .. ":|r " .. tostring(self.author)) + end + if self.credits then + print(" - |cffffff7f" .. CREDITS .. ":|r " .. tostring(self.credits)) + end + if 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 self.email then + print(" - |cffffff7f" .. EMAIL .. ":|r " .. tostring(self.email)) + end + if self.website then + print(" - |cffffff7f" .. WEBSITE .. ":|r " .. tostring(self.website)) + end + if self.commands then + print(" - |cffffff7f" .. COMMANDS .. ":|r " .. tostring(self.commands)) + 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 table.getn(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 + local current = addon.class + while true do + if current == AceOO.Class 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) + end + end + end + current = current.super + end + if type(addon.OnEnable) == "function" then + safecall(addon.OnEnable,addon) + end + if AceEvent then + AceEvent:TriggerEvent("Ace2_AddonEnabled", addon) + 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", true) + 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, m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11, m12, m13, m14, m15, m16, m17, m18, m19, m20) + local class = AceAddon:pcall(AceOO.Classpool, self, m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11, m12, m13, m14, m15, m16, m17, m18, m19, m20) + 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 = string.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(string.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 + local addon = self.addons[name] + if not AceCoreAddon or not AceCoreAddon:IsModule(addon) then + listAddon(addon) + end + else + local s = " - " .. tostring(GetAddOnMetadata(i, "Title") or name) + local version = GetAddOnMetadata(i, "Version") + if version then + if string.find(version, "%$Revision: (%d+) %$") then + version = string.gsub(version, "%$Revision: (%d+) %$", "%1") + elseif string.find(version, "%$Rev: (%d+) %$") then + version = string.gsub(version, "%$Rev: (%d+) %$", "%1") + elseif string.find(version, "%$LastChangedRevision: (%d+) %$") then + version = string.gsub(version, "%$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." .. string.gsub(MINOR_VERSION, "%$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") + local AceCoreAddon = AceLibrary:HasInstance("AceCoreAddon-2.0") and AceLibrary("AceCoreAddon-2.0") + table.sort(self.addons, mySort) + for _,v in ipairs(self.addons) do + if not AceCoreAddon or not AceCoreAddon:IsModule(v) then + listAddon(v) + end + end + end + }, + all = { + desc = "List all addons", + name = "All", + type = "execute", + func = function() + print("|cffffff7fAddon list:|r") + local AceCoreAddon = AceLibrary:HasInstance("AceCoreAddon-2.0") and AceLibrary("AceCoreAddon-2.0") + 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 AceCoreAddon = AceLibrary:HasInstance("AceCoreAddon-2.0") and AceLibrary("AceCoreAddon-2.0") + 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 AceCoreAddon = AceLibrary:HasInstance("AceCoreAddon-2.0") and AceLibrary("AceCoreAddon-2.0") + 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 AceCoreAddon = AceLibrary:HasInstance("AceCoreAddon-2.0") and AceLibrary("AceCoreAddon-2.0") + 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 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 = "", + input = true, + get = false, + set = function(...) + for i,v in ipairs(arg) do + arg[i] = string.lower(string.gsub(string.gsub(v, '%*', '.*'), '%%', '%%%%')) + end + local count = GetNumAddOns() + for i = 1, count do + local name = GetAddOnInfo(i) + local good = true + for _,v in ipairs(arg) do + if not string.find(string.lower(name), v) then + good = false + break + end + end + if good then + listNormalAddon(i) + end + end + end + } + }, + }, + enable = { + desc = "Enable addon", + name = "Enable", + type = "text", + usage = "", + get = false, + set = function(text) + local name,title,_,_,_,reason = GetAddOnInfo(text) + if reason == "MISSING" then + print(string.format("|cffffff7fAce2:|r AddOn %q does not exist", text)) + else + EnableAddOn(text) + print(string.format("|cffffff7fAce2:|r %s is now enabled", title or name)) + end + end, + }, + disable = { + desc = "Disable addon", + name = "Disable", + type = "text", + usage = "", + get = false, + set = function(text) + local name,title,_,_,_,reason = GetAddOnInfo(text) + if reason == "MISSING" then + print(string.format("|cffffff7fAce2:|r AddOn %q does not exist", text)) + else + DisableAddOn(text) + print(string.format("|cffffff7fAce2:|r %s is now disabled", title or name)) + end + end, + }, + load = { + desc = "Load addon", + name = "Load", + type = "text", + usage = "", + get = false, + set = function(text) + local name,title,_,_,loadable,reason = GetAddOnInfo(text) + if reason == "MISSING" then + print(string.format("|cffffff7fAce2:|r AddOn %q does not exist.", text)) + elseif not loadable then + print(string.format("|cffffff7fAce2:|r AddOn %q is not loadable. Reason: %s", text, reason)) + else + LoadAddOn(text) + print(string.format("|cffffff7fAce2:|r %s is now loaded", title or name)) + end + end + }, + info = { + desc = "Display information", + name = "Information", + type = "execute", + func = function() + local mem, threshold = gcinfo() + print(string.format(" - |cffffff7fMemory usage [|r%.3f MiB|cffffff7f]|r", mem / 1024)) + print(string.format(" - |cffffff7fThreshold [|r%.3f MiB|cffffff7f]|r", threshold / 1024)) + print(string.format(" - |cffffff7fFramerate [|r%.0f fps|cffffff7f]|r", GetFramerate())) + local bandwidthIn, bandwidthOut, latency = GetNetStats() + bandwidthIn, bandwidthOut = floor(bandwidthIn * 1024), floor(bandwidthOut * 1024) + print(string.format(" - |cffffff7fLatency [|r%.0f ms|cffffff7f]|r", latency)) + print(string.format(" - |cffffff7fBandwidth in [|r%.0f B/s|cffffff7f]|r", bandwidthIn)) + print(string.format(" - |cffffff7fBandwidth out [|r%.0f B/s|cffffff7f]|r", bandwidthOut)) + print(string.format(" - |cffffff7fTotal addons [|r%d|cffffff7f]|r", GetNumAddOns())) + print(string.format(" - |cffffff7fAce2 addons [|r%d|cffffff7f]|r", table.getn(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 = GetAddOnInfo(i) + if not IsActive or not loadable then + disabled = disabled + 1 + else + enabled = enabled + 1 + end + end + print(string.format(" - |cffffff7fAce 1.x addons [|r%d|cffffff7f]|r", ace)) + print(string.format(" - |cffffff7fLoadOnDemand addons [|r%d|cffffff7f]|r", lod)) + print(string.format(" - |cffffff7fenabled addons [|r%d|cffffff7f]|r", enabled)) + print(string.format(" - |cffffff7fdisabled addons [|r%d|cffffff7f]|r", 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(string.format(" - |cffffff7fAceLibrary instances [|r%d|cffffff7f]|r", libs)) + end + } + } + }) + elseif major == "AceModuleCore-2.0" then + AceModuleCore = instance + end +end + +local function activate(self, oldLib, oldDeactivate) + AceAddon = self + + if oldLib then + self.playerLoginFired = oldLib.playerLoginFired or DEFAULT_CHAT_FRAME and DEFAULT_CHAT_FRAME.defaultLanguage + self.addonsToOnEnable = oldLib.addonsToOnEnable + self.addons = oldLib.addons + self.nextAddon = oldLib.nextAddon + self.addonsStarted = oldLib.addonsStarted + end + if not self.addons then + self.addons = {} + end + if not self.nextAddon then + self.nextAddon = {} + end + if not self.addonsStarted then + self.addonsStarted = {} + end + if oldDeactivate then + oldDeactivate(oldLib) + end +end + +AceLibrary:Register(AceAddon, MAJOR_VERSION, MINOR_VERSION, activate, nil, external) +AceAddon = AceLibrary(MAJOR_VERSION) diff --git a/Payload/Interface/Addons/nampowersettings/libs/AceConsole-2.0/AceConsole-2.0.lua b/Payload/Interface/Addons/nampowersettings/libs/AceConsole-2.0/AceConsole-2.0.lua index d4d2f2a..5cab96e 100644 --- a/Payload/Interface/Addons/nampowersettings/libs/AceConsole-2.0/AceConsole-2.0.lua +++ b/Payload/Interface/Addons/nampowersettings/libs/AceConsole-2.0/AceConsole-2.0.lua @@ -1,1920 +1,1920 @@ ---[[ -Name: AceConsole-2.0 -Revision: $Rev: 17638 $ -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/root/trunk/Ace2/AceConsole-2.0 -Description: Mixin to allow for input/output capabilities. This uses the - AceOptions data table format to determine input. - http://wiki.wowace.com/index.php/AceOptions_data_table -Dependencies: AceLibrary, AceOO-2.0 -]] - -local MAJOR_VERSION = "AceConsole-2.0" -local MINOR_VERSION = "$Revision: 17639 $" - -if not AceLibrary then error(MAJOR_VERSION .. " requires AceLibrary.") end -if not AceLibrary:IsNewVersion(MAJOR_VERSION, MINOR_VERSION) then return end - -if loadstring("return function(...) return ... end") and AceLibrary:HasInstance(MAJOR_VERSION) then return end -- lua51 check -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 -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." -elseif GetLocale() == "esES" then - MAP_ONOFF = { [false] = "|cffff0000Inactivo|r", [true] = "|cff00ff00Activo|r" } - USAGE = "Uso" - IS_CURRENTLY_SET_TO = "|cffffff7f%s|r es asignado a |cffffff7f[|r%s|cffffff7f]|r" - IS_NOW_SET_TO = "|cffffff7f%s|r es asignado a |cffffff7f[|r%s|cffffff7f]|r" - IS_NOT_A_VALID_OPTION_FOR = "[|cffffff7f%s|r] no es opción válida para |cffffff7f%s|r" - IS_NOT_A_VALID_VALUE_FOR = "[|cffffff7f%s|r] no es valor válido para |cffffff7f%s|r" - NO_OPTIONS_AVAILABLE = "No hay opciones" - OPTION_HANDLER_NOT_FOUND = "Operario de opción |cffffff7f%q|r no se encuentra." - OPTION_HANDLER_NOT_VALID = "Operario de opción no es válido." - OPTION_IS_DISABLED = "La opción |cffffff7f%s|r es desactivado." -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." -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 설정은 사용할 수 없습니다." -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." -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 已被停用。" -elseif GetLocale() == "ruRU" 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 отключена." -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." -end - -local NONE = NONE or "None" - -local AceOO = AceLibrary("AceOO-2.0") -local AceEvent - -local AceConsole = AceOO.Mixin { "Print", "PrintComma", "CustomPrint", "RegisterChatCommand" } -local Dewdrop - -local _G = getfenv(0) - -local table_setn -do - local version = GetBuildInfo() - if string.find(version, "^2%.") then - -- 2.0.0 - table_setn = function() end - else - table_setn = table.setn - end -end - -local function print(text, name, r, g, b, frame, delay) - if not text or string.len(text) == 0 then - text = " " - end - if not name or name == AceConsole then - (frame or DEFAULT_CHAT_FRAME):AddMessage(text, r, g, b, nil, delay or 5) - else - (frame or DEFAULT_CHAT_FRAME):AddMessage("|cffffff78" .. tostring(name) .. ":|r " .. text, r, g, b, nil, delay or 5) - end -end - -local tmp -function AceConsole:CustomPrint(r, g, b, frame, delay, connector, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20) - a1 = tostring(a1) - if string.find(a1, "%%") then - print(string.format(a1, tostring(a2), tostring(a3), tostring(a4), tostring(a5), tostring(a6), tostring(a7), tostring(a8), tostring(a9), tostring(a10), tostring(a11), tostring(a12), tostring(a13), tostring(a14), tostring(a15), tostring(a16), tostring(a17), tostring(a18), tostring(a19), tostring(a20)), self, r, g, b, frame or self.printFrame, delay) - else - if not tmp then - tmp = {} - end - tmp[1] = a1 - tmp[2] = a2 - tmp[3] = a3 - tmp[4] = a4 - tmp[5] = a5 - tmp[6] = a6 - tmp[7] = a7 - tmp[8] = a8 - tmp[9] = a9 - tmp[10] = a10 - tmp[11] = a11 - tmp[12] = a12 - tmp[13] = a13 - tmp[14] = a14 - tmp[15] = a15 - tmp[16] = a16 - tmp[17] = a17 - tmp[18] = a18 - tmp[19] = a19 - tmp[20] = a20 - local n = 20 - while tmp[n] == nil do - n = n - 1 - end - table_setn(tmp, n) - for k = 1, n do - tmp[k] = tostring(tmp[k]) - end - print(table.concat(tmp, connector or " "), self, r, g, b, frame or self.printFrame, delay) - for k,v in pairs(tmp) do - tmp[k] = nil - end - table_setn(tmp, 0) - end -end - -function AceConsole:Print(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20) - return AceConsole.CustomPrint(self, nil, nil, nil, nil, nil, " ", a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20) -end - -function AceConsole:PrintComma(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20) - return AceConsole.CustomPrint(self, nil, nil, nil, nil, nil, ", ", a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20) -end - -local work -local argwork - -local string_gfind = string.gmatch or string.gfind - -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 - table_setn(work, 0) - for k,v in pairs(argwork) do - argwork[k] = nil - end - table_setn(argwork, 0) - else - work = {} - argwork = {} - end - local len = string.len(text) - local count - repeat - text, count = string.gsub(text, "(|cff%x%x%x%x%x%x|Hitem:%d-:%d-:%d-:%d-|h%[[^%]]-) (.-%]|h|r)", "%1\001%2") - until count == 0 - text = string.gsub(text, "(%]|h|r)(|cff%x%x%x%x%x%x|Hitem:%d-:%d-:%d-:%d-|h%[)", "%1 %2") - for token in string_gfind(text, "([^%s]+)") do - local token = token - local num = tonumber(token) - if num then - token = num - else - token = string.gsub(token, "\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 - if type(handler[hidden]) ~= "function" then - AceConsole:error("%s: %s", tostring(handler), string.format(OPTION_HANDLER_NOT_FOUND, hidden)) - end - hidden = handler[hidden](handler) - 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 - if type(handler[disabled]) ~= "function" then - AceConsole:error("%s: %s", tostring(handler), string.format(OPTION_HANDLER_NOT_FOUND, disabled)) - end - disabled = handler[disabled](handler) - end - end - if not disabled then - local next = work[index] and string.lower(work[index]) - if next then - for k,v in pairs(options.args) do - local good = false - if string.lower(k) == next then - good = true - elseif type(v.aliases) == "table" then - for _,alias in ipairs(v.aliases) do - if string.lower(alias) == next then - good = true - break - end - end - elseif type(v.aliases) == "string" and string.lower(v.aliases) == 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, table.getn(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 string.format("%q is not a proper function", 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" and type(self[options.get]) ~= "function" then - return string.format("%q is not a proper function", options.get), position - 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 string.format("%q is not a proper function", options.set), position - end - end - if options.validate and type(options.validate) ~= "table" 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 string.format("%q is not a proper function", options.validate), position - end - end - end - if options.disabled and type(options.disabled) == "string" and type(self[options.disabled]) ~= "function" then - return string.format("%q is not a proper function", options.disabled), position - end - if options.cmdHidden and type(options.cmdHidden) == "string" and type(self[options.cmdHidden]) ~= "function" then - return string.format("%q is not a proper function", options.cmdHidden), position - end - if options.guiHidden and type(options.guiHidden) == "string" and type(self[options.guiHidden]) ~= "function" then - return string.format("%q is not a proper function", options.guiHidden), position - end - if options.hidden and type(options.hidden) == "string" and type(self[options.hidden]) ~= "function" then - return string.format("%q is not a proper function", options.hidden), position - 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 string.len(options.desc) == 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 string.len(options.cmdName) == 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 string.len(options.guiName) == 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 string.len(options.name) == 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 > table.getn(t) then - return '"validate" numeric keys must be indexed properly. >= 1 and <= table.getn', 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 - 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 - 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) ~= "string" then - return '"args" keys must be strings', position - elseif string.find(k, "%s") then - return string.format('"args" keys must not include spaces. %q is not appropriate.', k), position - elseif string.len(k) == 0 then - return '"args" keys must not be 0-length strings.', position - 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 - end -end - -local colorTable -local colorFunc -local colorCancelFunc - -local order - -local mysort_args -local mysort - -local function printUsage(self, handler, realOptions, options, path, args, quiet, filter) - if filter then - filter = "^" .. string.gsub(filter, "([%(%)%.%*%+%-%[%]%?%^%$%%])", "%%%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 - if type(handler[hidden]) ~= "function" then - AceConsole:error("%s: %s", tostring(handler), string.format(OPTION_HANDLER_NOT_FOUND, hidden)) - end - hidden = handler[hidden](handler) - end - end - if hidden then - disabled = true - elseif disabled then - if type(disabled) == "function" then - disabled = disabled() - elseif type(disabled) == "string" then - if type(handler[disabled]) ~= "function" then - AceConsole:error("%s: %s", tostring(handler), string.format(OPTION_HANDLER_NOT_FOUND, disabled)) - end - disabled = handler[disabled](handler) - end - end - local kind = string.lower(options.type or "group") - if disabled then - print(string.format(OPTION_IS_DISABLED, path), realOptions.cmdName or realOptions.name or self) - elseif kind == "text" then - local var - if passTable then - if not passTable.get then - elseif 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", tostring(handler), string.format(OPTION_HANDLER_NOT_FOUND, passTable.get)) - end - var = handler[passTable.get](handler, passValue) - end - else - if not options.get then - elseif 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", tostring(handler), string.format(OPTION_HANDLER_NOT_FOUND, options.get)) - end - var = handler[options.get](handler) - 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 string.find(v, filter) then - table.insert(order, v) - end - end - usage = "{" .. table.concat(order, " || ") .. "}" - for k in pairs(order) do - order[k] = nil - end - table_setn(order, 0) - else - 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 - table_setn(order, 0) - end - var = options.validate[var] or var - else - usage = options.usage or "" - end - if not quiet then - print(string.format("|cffffff7f%s:|r %s %s", USAGE, path, usage), realOptions.cmdName or realOptions.name or self) - end - if (passTable and passTable.get) or options.get then - print(string.format(options.current or IS_CURRENTLY_SET_TO, 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", tostring(handler), string.format(OPTION_HANDLER_NOT_FOUND, 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", tostring(handler), string.format(OPTION_HANDLER_NOT_FOUND, 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 = string.format("(%s%s%s)", min, bit, max) - if not quiet then - print(string.format("|cffffff7f%s:|r %s %s", USAGE, path, usage), realOptions.cmdName or realOptions.name or self) - end - print(string.format(options.current or IS_CURRENTLY_SET_TO, 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 handler = v.handler or handler - if type(handler[hidden]) ~= "function" then - AceConsole:error("%s: %s", tostring(handler), string.format(OPTION_HANDLER_NOT_FOUND, hidden)) - end - hidden = handler[hidden](handler) - end - end - if not hidden then - if filter then - if string.find(k, filter) then - table.insert(order, k) - elseif type(v.aliases) == "table" then - for _,bit in ipairs(v.aliases) do - if string.find(v.aliases, filter) then - table.insert(order, k) - break - end - end - elseif type(v.aliases) == "string" then - if string.find(v.aliases, 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) < tostring(b) - 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) < tostring(b) - 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(string.format("|cffffff7f%s:|r %s %s", 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(string.format("|cffffff7f%s:|r %s %s", USAGE, path, "{" .. table.concat(order, " || ") .. "}")) - else - print(string.format("|cffffff7f%s:|r %s %s", USAGE, path, "{" .. table.concat(order, " || ") .. "}"), realOptions.cmdName or realOptions.name or self) - end - else - if options.desc then - print(string.format("|cffffff7f%s:|r %s %s", USAGE, path, "{" .. table.concat(order, " || ") .. "}"), realOptions.cmdName or realOptions.name or self) - print(tostring(options.desc)) - else - print(string.format("|cffffff7f%s:|r %s %s", USAGE, path, "{" .. table.concat(order, " || ") .. "}"), realOptions.cmdName or realOptions.name or self) - end - end - end - for _,k in ipairs(order) do - local v = options.args[k] - if v then - local disabled = v.disabled - if disabled then - if type(disabled) == "function" then - disabled = disabled() - elseif type(disabled) == "string" then - local handler = v.handler or handler - if type(handler[disabled]) ~= "function" then - AceConsole:error("%s: %s", tostring(handler), string.format(OPTION_HANDLER_NOT_FOUND, disabled)) - end - disabled = handler[disabled](handler) - end - end - if type(v.aliases) == "table" then - k = k .. " || " .. table.concat(v.aliases, " || ") - elseif type(v.aliases) == "string" then - k = k .. " || " .. v.aliases - end - if v.get then - local a1,a2,a3,a4 - if type(v.get) == "function" then - if options.pass then - a1,a2,a3,a4 = v.get(k) - else - a1,a2,a3,a4 = v.get() - end - else - local handler = v.handler or handler - if type(handler[v.get]) ~= "function" then - AceConsole:error("%s: %s", tostring(handler), string.format(OPTION_HANDLER_NOT_FOUND, v.get)) - end - if options.pass then - a1,a2,a3,a4 = handler[v.get](handler, k) - else - a1,a2,a3,a4 = handler[v.get](handler) - end - end - 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 = string.format("|c%02x%02x%02x%02x%02x%02x%02x%02x|r", 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 = string.format("|cff%02x%02x%02x%02x%02x%02x|r", 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 - s = tostring(v.validate[a1] or a1) - else - s = tostring(a1 or NONE) - end - if disabled then - local s = string.gsub(s, "|cff%x%x%x%x%x%x(.-)|r", "%1") - local desc = string.gsub(v.desc or NONE, "|cff%x%x%x%x%x%x(.-)|r", "%1") - print(string.format("|cffcfcfcf - %s: [%s] %s|r", k, s, desc)) - else - print(string.format(" - |cffffff7f%s: [|r%s|cffffff7f]|r %s", k, s, v.desc or NONE)) - end - else - if disabled then - local desc = string.gsub(v.desc or NONE, "|cff%x%x%x%x%x%x(.-)|r", "%1") - print(string.format("|cffcfcfcf - %s: %s", k, desc)) - else - print(string.format(" - |cffffff7f%s:|r %s", k, v.desc or NONE)) - end - end - end - end - for k in pairs(order) do - order[k] = nil - end - table_setn(order, 0) - else - if options.desc then - desc = options.desc - print(string.format("|cffffff7f%s:|r %s", 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(string.format("|cffffff7f%s:|r %s", USAGE, path)) - else - print(string.format("|cffffff7f%s:|r %s", USAGE, path), realOptions.cmdName or realOptions.name or self) - end - print(NO_OPTIONS_AVAILABLE) - end - end -end - -local function handlerFunc(self, chat, msg, options) - if not msg then - msg = "" - else - msg = string.gsub(msg, "^%s*(.-)%s*$", "%1") - msg = string.gsub(msg, "%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 - if type(handler[hidden]) ~= "function" then - AceConsole:error("%s: %s", tostring(handler), string.format(OPTION_HANDLER_NOT_FOUND, hidden)) - end - hidden = handler[hidden](handler) - end - end - if hidden then - disabled = true - elseif disabled then - if type(disabled) == "function" then - disabled = disabled() - elseif type(disabled) == "string" then - if type(handler[disabled]) ~= "function" then - AceConsole:error("%s: %s", tostring(handler), string.format(OPTION_HANDLER_NOT_FOUND, disabled)) - end - disabled = handler[disabled](handler) - end - end - local _G_this = this - local kind = string.lower(options.type or "group") - if disabled then - print(string.format(OPTION_IS_DISABLED, path), realOptions.cmdName or realOptions.name or self) - elseif kind == "text" then - if table.getn(args) > 0 then - if (type(options.validate) == "table" and table.getn(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 - table_setn(args, 0) - table.insert(args, 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 = string.lower(tostring(arg)) - for k,v in pairs(options.validate) do - if string.lower(v) == 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 string.lower(k) == arg then - args[1] = k - good = true - break - end - end - end - else - if type(handler[options.validate]) ~= "function" then - AceConsole:error("%s: %s", tostring(handler), string.format(OPTION_HANDLER_NOT_FOUND, 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 - table_setn(order, 0) - else - usage = options.usage or "" - end - print(string.format(options.error or IS_NOT_A_VALID_OPTION_FOR, tostring(table.concat(args, " ")), path), realOptions.cmdName or realOptions.name or self) - print(string.format("|cffffff7f%s:|r %s %s", USAGE, path, usage)) - return - end - end - - local var - if passTable then - if not passTable.get then - elseif type(passTable.get) == "function" then - var = passTable.get(passValue) - else - if type(handler[passTable.get]) ~= "function" then - AceConsole:error("%s: %s", tostring(handler), string.format(OPTION_HANDLER_NOT_FOUND, passTable.get)) - end - var = handler[passTable.get](handler, passValue) - end - else - if not options.get then - elseif type(options.get) == "function" then - var = options.get() - else - if type(handler[options.get]) ~= "function" then - AceConsole:error("%s: %s", tostring(handler), string.format(OPTION_HANDLER_NOT_FOUND, options.get)) - end - var = handler[options.get](handler) - end - end - - if var ~= args[1] then - 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", tostring(handler), string.format(OPTION_HANDLER_NOT_FOUND, 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", tostring(handler), string.format(OPTION_HANDLER_NOT_FOUND, options.set)) - end - handler[options.set](handler, unpack(args)) - end - end - end - end - - if table.getn(args) > 0 then - local var - if passTable then - if not passTable.get then - elseif type(passTable.get) == "function" then - var = passTable.get(passValue) - else - if type(handler[passTable.get]) ~= "function" then - AceConsole:error("%s: %s", tostring(handler), string.format(OPTION_HANDLER_NOT_FOUND, passTable.get)) - end - var = handler[passTable.get](handler, passValue) - end - else - if not options.get then - elseif type(options.get) == "function" then - var = options.get() - else - if type(handler[options.get]) ~= "function" then - AceConsole:error("%s: %s", tostring(handler), string.format(OPTION_HANDLER_NOT_FOUND, options.get)) - end - var = handler[options.get](handler) - end - end - if type(options.validate) == "table" then - var = options.validate[var] or var - end - if (passTable and passTable.get) or options.get then - print(string.format(options.message or IS_NOW_SET_TO, 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 - if passTable then - if type(passFunc) == "function" then - set(passValue) - else - if type(handler[passFunc]) ~= "function" then - AceConsole:error("%s: %s", tostring(handler), string.format(OPTION_HANDLER_NOT_FOUND, passFunc)) - end - handler[passFunc](handler, passValue) - end - else - local ret, msg - if type(options.func) == "function" then - options.func() - else - local handler = options.handler or self - if type(handler[options.func]) ~= "function" then - AceConsole:error("%s: %s", tostring(handler), string.format(OPTION_HANDLER_NOT_FOUND, options.func)) - end - handler[options.func](handler) - end - end - elseif kind == "toggle" 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", tostring(handler), string.format(OPTION_HANDLER_NOT_FOUND, passTable.get)) - end - var = handler[passTable.get](handler, passValue) - end - if type(passTable.set) == "function" then - passTable.set(passValue, not var) - else - if type(handler[passTable.set]) ~= "function" then - AceConsole:error("%s: %s", tostring(handler), string.format(OPTION_HANDLER_NOT_FOUND, passTable.set)) - end - handler[passTable.set](handler, passValue, not var) - end - if type(passTable.get) == "function" then - var = passTable.get(passValue) - else - var = handler[passTable.get](handler, passValue) - end - else - local handler = options.handler or self - if type(options.get) == "function" then - var = options.get() - else - if type(handler[options.get]) ~= "function" then - AceConsole:error("%s: %s", tostring(handler), string.format(OPTION_HANDLER_NOT_FOUND, options.get)) - end - var = handler[options.get](handler) - end - if type(options.set) == "function" then - options.set(not var) - else - if type(handler[options.set]) ~= "function" then - AceConsole:error("%s: %s", tostring(handler), string.format(OPTION_HANDLER_NOT_FOUND, options.set)) - end - handler[options.set](handler, not var) - end - if type(options.get) == "function" then - var = options.get() - else - var = handler[options.get](handler) - end - end - - print(string.format(options.message or IS_NOW_SET_TO, 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 table.getn(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 = string.format("(%s%s%s)", min, bit, max) - print(string.format(options.error or IS_NOT_A_VALID_VALUE_FOR, tostring(arg), path), realOptions.cmdName or realOptions.name or self) - print(string.format("|cffffff7f%s:|r %s %s", 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", tostring(handler), string.format(OPTION_HANDLER_NOT_FOUND, 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", tostring(handler), string.format(OPTION_HANDLER_NOT_FOUND, 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", tostring(handler), string.format(OPTION_HANDLER_NOT_FOUND, 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", tostring(handler), string.format(OPTION_HANDLER_NOT_FOUND, 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", tostring(handler), string.format(OPTION_HANDLER_NOT_FOUND, 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", tostring(handler), string.format(OPTION_HANDLER_NOT_FOUND, options.get)) - end - var = handler[options.get](handler) - end - end - - if var and options.isPercent then - var = tostring(var * 100) .. "%" - end - print(string.format(options.message or IS_NOW_SET_TO, 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 table.getn(args) > 0 then - local r,g,b,a - if table.getn(args) == 1 then - local arg = tostring(args[1]) - if options.hasAlpha then - if string.len(arg) == 8 and string.find(arg, "^%x*$") then - r,g,b,a = tonumber(string.sub(arg, 1, 2), 16) / 255, tonumber(string.sub(arg, 3, 4), 16) / 255, tonumber(string.sub(arg, 5, 6), 16) / 255, tonumber(string.sub(arg, 7, 8), 16) / 255 - end - else - if string.len(arg) == 6 and string.find(arg, "^%x*$") then - r,g,b = tonumber(string.sub(arg, 1, 2), 16) / 255, tonumber(string.sub(arg, 3, 4), 16) / 255, tonumber(string.sub(arg, 5, 6), 16) / 255 - end - end - elseif table.getn(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 string.len(a1) == 2) and string.find(a1, "^%x*$") and (type(a2) == "number" or string.len(a2) == 2) and string.find(a2, "^%x*$") and (type(a3) == "number" or string.len(a3) == 2) and string.find(a3, "^%x*$") and (type(a4) == "number" or string.len(a4) == 2) and string.find(a4, "^%x*$") then - r,g,b,a = tonumber(a1, 16) / 255, tonumber(a2, 16) / 255, tonumber(a3, 16) / 255, tonumber(a4, 16) / 255 - end - elseif table.getn(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 string.len(a1) == 2) and string.find(a1, "^%x*$") and (type(a2) == "number" or string.len(a2) == 2) and string.find(a2, "^%x*$") and (type(a3) == "number" or string.len(a3) == 2) and string.find(a3, "^%x*$") then - r,g,b = tonumber(a1, 16) / 255, tonumber(a2, 16) / 255, tonumber(a3, 16) / 255 - end - end - if not r then - print(string.format(options.error or IS_NOT_A_VALID_OPTION_FOR, table.concat(args, ' '), path), realOptions.cmdName or realOptions.name or self) - print(string.format("|cffffff7f%s:|r %s {0-1} {0-1} {0-1}%s", 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", tostring(handler), string.format(OPTION_HANDLER_NOT_FOUND, 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", tostring(handler), string.format(OPTION_HANDLER_NOT_FOUND, 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", tostring(handler), string.format(OPTION_HANDLER_NOT_FOUND, 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", tostring(handler), string.format(OPTION_HANDLER_NOT_FOUND, 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 = string.format("|c%02x%02x%02x%02x%02x%02x%02x%02x|r", a*255, r*255, g*255, b*255, r*255, g*255, b*255, a*255) - else - s = string.format("|cff%02x%02x%02x%02x%02x%02x|r", r*255, g*255, b*255, r*255, g*255, b*255) - end - else - s = NONE - end - print(string.format(options.message or IS_NOW_SET_TO, 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", tostring(handler), string.format(OPTION_HANDLER_NOT_FOUND, 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", tostring(handler), string.format(OPTION_HANDLER_NOT_FOUND, 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", tostring(handler), string.format(OPTION_HANDLER_NOT_FOUND, 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", tostring(handler), string.format(OPTION_HANDLER_NOT_FOUND, 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 = string.format("|c%02x%02x%02x%02x%02x%02x%02x%02x|r", a*255, r*255, g*255, b*255, r*255, g*255, b*255, a*255) - else - s = string.format("|cff%02x%02x%02x%02x%02x%02x|r", r*255, g*255, b*255, r*255, g*255, b*255) - end - else - s = NONE - end - print(string.format(t.message, 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", tostring(handler), string.format(OPTION_HANDLER_NOT_FOUND, 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", tostring(handler), string.format(OPTION_HANDLER_NOT_FOUND, 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", tostring(handler), string.format(OPTION_HANDLER_NOT_FOUND, 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", tostring(handler), string.format(OPTION_HANDLER_NOT_FOUND, 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 table.getn(args) == 0 then - printUsage(self, handler, realOptions, options, path, args) - else - -- invalid argument - print(string.format(options.error or IS_NOT_A_VALID_OPTION_FOR, 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 string.find(name, "^%w+$") or string.upper(name) ~= name or string.len(name) == 0 then - AceConsole:error("Argument #4 must be an uppercase, letters-only string with at least 1 character") - end - end - if slashCommands then - if table.getn(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 string.find(v, "^/[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 string.lower(options.type) == "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 then - repeat - name = string.char(math.random(26) + string.byte('A') - 1) .. string.char(math.random(26) + string.byte('A') - 1) .. string.char(math.random(26) + string.byte('A') - 1) .. string.char(math.random(26) + string.byte('A') - 1) .. string.char(math.random(26) + string.byte('A') - 1) .. string.char(math.random(26) + string.byte('A') - 1) .. string.char(math.random(26) + string.byte('A') - 1) .. string.char(math.random(26) + string.byte('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 - i = i + 1 - _G["SLASH_"..name..i] = command - if string.lower(command) ~= command then - i = i + 1 - _G["SLASH_"..name..i] = string.lower(command) - 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 string.lower(options.type) ~= "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 - error(tostring(addon) .. ": AceConsole: " .. position .. ": " .. err) - else - error(tostring(addon) .. ": AceConsole: " .. err) - end - end - self.nextAddon[addon] = nil - end - - self:RegisterChatCommand({ "/reload", "/rl", "/reloadui" }, ReloadUI, "RELOAD") - - local version = GetBuildInfo() - if string.find(version, "^2%.") then - -- 2.0.0 - self:RegisterChatCommand({ "/print" }, function(text) - RunScript("local function func(...) local arg = {...}; for k = 1,select('#', ...) do arg[k] = tostring(arg[k]) end DEFAULT_CHAT_FRAME:AddMessage(table.concat(arg, ' ')) end func(" .. text .. ")") - end, "PRINT") - else - self:RegisterChatCommand({ "/print" }, function(text) - RunScript("local function func(...) for k = 1,table.getn(arg) do arg[k] = tostring(arg[k]) end DEFAULT_CHAT_FRAME:AddMessage(table.concat(arg, ' ')) end func(" .. text .. ")") - end, "PRINT") - end -end - -function AceConsole:TabCompleteInfo(cmdpath) - local _, _, cmd = string.find(cmdpath, "(/%S+)") - if not cmd then - return - end - local path = string.sub(cmdpath, string.len(cmd) + 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 ac = AceLibrary("AceConsole-2.0") - local name, cmd, path = ac:TabCompleteInfo(string.sub(cmdpath, 1, pos)) - - if not ac.registry[name] then - return false - else - local validArgs = findTableLevel(ac, ac.registry[name], cmd, path or "") - if validArgs.args then - for arg in pairs(validArgs.args) do - table.insert(t, arg) - end - end - end - end, function(u, matches, gcs, cmdpath) - local ac = AceLibrary("AceConsole-2.0") - local name, cmd, path = ac:TabCompleteInfo(cmdpath) - if ac.registry[name] then - local validArgs, path2, argwork = findTableLevel(ac, ac.registry[name], cmd, path) - printUsage(ac, validArgs.handler, ac.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 - - self.super.activate(self, oldLib, oldDeactivate) - - 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 - - if oldDeactivate then - oldDeactivate(oldLib) - end -end - -AceLibrary:Register(AceConsole, MAJOR_VERSION, MINOR_VERSION, activate, nil, external) -AceConsole = AceLibrary(MAJOR_VERSION) +--[[ +Name: AceConsole-2.0 +Revision: $Rev: 17638 $ +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/root/trunk/Ace2/AceConsole-2.0 +Description: Mixin to allow for input/output capabilities. This uses the + AceOptions data table format to determine input. + http://wiki.wowace.com/index.php/AceOptions_data_table +Dependencies: AceLibrary, AceOO-2.0 +]] + +local MAJOR_VERSION = "AceConsole-2.0" +local MINOR_VERSION = "$Revision: 17639 $" + +if not AceLibrary then error(MAJOR_VERSION .. " requires AceLibrary.") end +if not AceLibrary:IsNewVersion(MAJOR_VERSION, MINOR_VERSION) then return end + +if loadstring("return function(...) return ... end") and AceLibrary:HasInstance(MAJOR_VERSION) then return end -- lua51 check +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 +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." +elseif GetLocale() == "esES" then + MAP_ONOFF = { [false] = "|cffff0000Inactivo|r", [true] = "|cff00ff00Activo|r" } + USAGE = "Uso" + IS_CURRENTLY_SET_TO = "|cffffff7f%s|r es asignado a |cffffff7f[|r%s|cffffff7f]|r" + IS_NOW_SET_TO = "|cffffff7f%s|r es asignado a |cffffff7f[|r%s|cffffff7f]|r" + IS_NOT_A_VALID_OPTION_FOR = "[|cffffff7f%s|r] no es opción válida para |cffffff7f%s|r" + IS_NOT_A_VALID_VALUE_FOR = "[|cffffff7f%s|r] no es valor válido para |cffffff7f%s|r" + NO_OPTIONS_AVAILABLE = "No hay opciones" + OPTION_HANDLER_NOT_FOUND = "Operario de opción |cffffff7f%q|r no se encuentra." + OPTION_HANDLER_NOT_VALID = "Operario de opción no es válido." + OPTION_IS_DISABLED = "La opción |cffffff7f%s|r es desactivado." +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." +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 설정은 사용할 수 없습니다." +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." +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 已被停用。" +elseif GetLocale() == "ruRU" 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 отключена." +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." +end + +local NONE = NONE or "None" + +local AceOO = AceLibrary("AceOO-2.0") +local AceEvent + +local AceConsole = AceOO.Mixin { "Print", "PrintComma", "CustomPrint", "RegisterChatCommand" } +local Dewdrop + +local _G = getfenv(0) + +local table_setn +do + local version = GetBuildInfo() + if string.find(version, "^2%.") then + -- 2.0.0 + table_setn = function() end + else + table_setn = table.setn + end +end + +local function print(text, name, r, g, b, frame, delay) + if not text or string.len(text) == 0 then + text = " " + end + if not name or name == AceConsole then + (frame or DEFAULT_CHAT_FRAME):AddMessage(text, r, g, b, nil, delay or 5) + else + (frame or DEFAULT_CHAT_FRAME):AddMessage("|cffffff78" .. tostring(name) .. ":|r " .. text, r, g, b, nil, delay or 5) + end +end + +local tmp +function AceConsole:CustomPrint(r, g, b, frame, delay, connector, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20) + a1 = tostring(a1) + if string.find(a1, "%%") then + print(string.format(a1, tostring(a2), tostring(a3), tostring(a4), tostring(a5), tostring(a6), tostring(a7), tostring(a8), tostring(a9), tostring(a10), tostring(a11), tostring(a12), tostring(a13), tostring(a14), tostring(a15), tostring(a16), tostring(a17), tostring(a18), tostring(a19), tostring(a20)), self, r, g, b, frame or self.printFrame, delay) + else + if not tmp then + tmp = {} + end + tmp[1] = a1 + tmp[2] = a2 + tmp[3] = a3 + tmp[4] = a4 + tmp[5] = a5 + tmp[6] = a6 + tmp[7] = a7 + tmp[8] = a8 + tmp[9] = a9 + tmp[10] = a10 + tmp[11] = a11 + tmp[12] = a12 + tmp[13] = a13 + tmp[14] = a14 + tmp[15] = a15 + tmp[16] = a16 + tmp[17] = a17 + tmp[18] = a18 + tmp[19] = a19 + tmp[20] = a20 + local n = 20 + while tmp[n] == nil do + n = n - 1 + end + table_setn(tmp, n) + for k = 1, n do + tmp[k] = tostring(tmp[k]) + end + print(table.concat(tmp, connector or " "), self, r, g, b, frame or self.printFrame, delay) + for k,v in pairs(tmp) do + tmp[k] = nil + end + table_setn(tmp, 0) + end +end + +function AceConsole:Print(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20) + return AceConsole.CustomPrint(self, nil, nil, nil, nil, nil, " ", a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20) +end + +function AceConsole:PrintComma(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20) + return AceConsole.CustomPrint(self, nil, nil, nil, nil, nil, ", ", a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20) +end + +local work +local argwork + +local string_gfind = string.gmatch or string.gfind + +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 + table_setn(work, 0) + for k,v in pairs(argwork) do + argwork[k] = nil + end + table_setn(argwork, 0) + else + work = {} + argwork = {} + end + local len = string.len(text) + local count + repeat + text, count = string.gsub(text, "(|cff%x%x%x%x%x%x|Hitem:%d-:%d-:%d-:%d-|h%[[^%]]-) (.-%]|h|r)", "%1\001%2") + until count == 0 + text = string.gsub(text, "(%]|h|r)(|cff%x%x%x%x%x%x|Hitem:%d-:%d-:%d-:%d-|h%[)", "%1 %2") + for token in string_gfind(text, "([^%s]+)") do + local token = token + local num = tonumber(token) + if num then + token = num + else + token = string.gsub(token, "\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 + if type(handler[hidden]) ~= "function" then + AceConsole:error("%s: %s", tostring(handler), string.format(OPTION_HANDLER_NOT_FOUND, hidden)) + end + hidden = handler[hidden](handler) + 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 + if type(handler[disabled]) ~= "function" then + AceConsole:error("%s: %s", tostring(handler), string.format(OPTION_HANDLER_NOT_FOUND, disabled)) + end + disabled = handler[disabled](handler) + end + end + if not disabled then + local next = work[index] and string.lower(work[index]) + if next then + for k,v in pairs(options.args) do + local good = false + if string.lower(k) == next then + good = true + elseif type(v.aliases) == "table" then + for _,alias in ipairs(v.aliases) do + if string.lower(alias) == next then + good = true + break + end + end + elseif type(v.aliases) == "string" and string.lower(v.aliases) == 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, table.getn(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 string.format("%q is not a proper function", 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" and type(self[options.get]) ~= "function" then + return string.format("%q is not a proper function", options.get), position + 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 string.format("%q is not a proper function", options.set), position + end + end + if options.validate and type(options.validate) ~= "table" 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 string.format("%q is not a proper function", options.validate), position + end + end + end + if options.disabled and type(options.disabled) == "string" and type(self[options.disabled]) ~= "function" then + return string.format("%q is not a proper function", options.disabled), position + end + if options.cmdHidden and type(options.cmdHidden) == "string" and type(self[options.cmdHidden]) ~= "function" then + return string.format("%q is not a proper function", options.cmdHidden), position + end + if options.guiHidden and type(options.guiHidden) == "string" and type(self[options.guiHidden]) ~= "function" then + return string.format("%q is not a proper function", options.guiHidden), position + end + if options.hidden and type(options.hidden) == "string" and type(self[options.hidden]) ~= "function" then + return string.format("%q is not a proper function", options.hidden), position + 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 string.len(options.desc) == 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 string.len(options.cmdName) == 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 string.len(options.guiName) == 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 string.len(options.name) == 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 > table.getn(t) then + return '"validate" numeric keys must be indexed properly. >= 1 and <= table.getn', 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 + 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 + 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) ~= "string" then + return '"args" keys must be strings', position + elseif string.find(k, "%s") then + return string.format('"args" keys must not include spaces. %q is not appropriate.', k), position + elseif string.len(k) == 0 then + return '"args" keys must not be 0-length strings.', position + 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 + end +end + +local colorTable +local colorFunc +local colorCancelFunc + +local order + +local mysort_args +local mysort + +local function printUsage(self, handler, realOptions, options, path, args, quiet, filter) + if filter then + filter = "^" .. string.gsub(filter, "([%(%)%.%*%+%-%[%]%?%^%$%%])", "%%%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 + if type(handler[hidden]) ~= "function" then + AceConsole:error("%s: %s", tostring(handler), string.format(OPTION_HANDLER_NOT_FOUND, hidden)) + end + hidden = handler[hidden](handler) + end + end + if hidden then + disabled = true + elseif disabled then + if type(disabled) == "function" then + disabled = disabled() + elseif type(disabled) == "string" then + if type(handler[disabled]) ~= "function" then + AceConsole:error("%s: %s", tostring(handler), string.format(OPTION_HANDLER_NOT_FOUND, disabled)) + end + disabled = handler[disabled](handler) + end + end + local kind = string.lower(options.type or "group") + if disabled then + print(string.format(OPTION_IS_DISABLED, path), realOptions.cmdName or realOptions.name or self) + elseif kind == "text" then + local var + if passTable then + if not passTable.get then + elseif 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", tostring(handler), string.format(OPTION_HANDLER_NOT_FOUND, passTable.get)) + end + var = handler[passTable.get](handler, passValue) + end + else + if not options.get then + elseif 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", tostring(handler), string.format(OPTION_HANDLER_NOT_FOUND, options.get)) + end + var = handler[options.get](handler) + 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 string.find(v, filter) then + table.insert(order, v) + end + end + usage = "{" .. table.concat(order, " || ") .. "}" + for k in pairs(order) do + order[k] = nil + end + table_setn(order, 0) + else + 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 + table_setn(order, 0) + end + var = options.validate[var] or var + else + usage = options.usage or "" + end + if not quiet then + print(string.format("|cffffff7f%s:|r %s %s", USAGE, path, usage), realOptions.cmdName or realOptions.name or self) + end + if (passTable and passTable.get) or options.get then + print(string.format(options.current or IS_CURRENTLY_SET_TO, 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", tostring(handler), string.format(OPTION_HANDLER_NOT_FOUND, 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", tostring(handler), string.format(OPTION_HANDLER_NOT_FOUND, 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 = string.format("(%s%s%s)", min, bit, max) + if not quiet then + print(string.format("|cffffff7f%s:|r %s %s", USAGE, path, usage), realOptions.cmdName or realOptions.name or self) + end + print(string.format(options.current or IS_CURRENTLY_SET_TO, 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 handler = v.handler or handler + if type(handler[hidden]) ~= "function" then + AceConsole:error("%s: %s", tostring(handler), string.format(OPTION_HANDLER_NOT_FOUND, hidden)) + end + hidden = handler[hidden](handler) + end + end + if not hidden then + if filter then + if string.find(k, filter) then + table.insert(order, k) + elseif type(v.aliases) == "table" then + for _,bit in ipairs(v.aliases) do + if string.find(v.aliases, filter) then + table.insert(order, k) + break + end + end + elseif type(v.aliases) == "string" then + if string.find(v.aliases, 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) < tostring(b) + 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) < tostring(b) + 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(string.format("|cffffff7f%s:|r %s %s", 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(string.format("|cffffff7f%s:|r %s %s", USAGE, path, "{" .. table.concat(order, " || ") .. "}")) + else + print(string.format("|cffffff7f%s:|r %s %s", USAGE, path, "{" .. table.concat(order, " || ") .. "}"), realOptions.cmdName or realOptions.name or self) + end + else + if options.desc then + print(string.format("|cffffff7f%s:|r %s %s", USAGE, path, "{" .. table.concat(order, " || ") .. "}"), realOptions.cmdName or realOptions.name or self) + print(tostring(options.desc)) + else + print(string.format("|cffffff7f%s:|r %s %s", USAGE, path, "{" .. table.concat(order, " || ") .. "}"), realOptions.cmdName or realOptions.name or self) + end + end + end + for _,k in ipairs(order) do + local v = options.args[k] + if v then + local disabled = v.disabled + if disabled then + if type(disabled) == "function" then + disabled = disabled() + elseif type(disabled) == "string" then + local handler = v.handler or handler + if type(handler[disabled]) ~= "function" then + AceConsole:error("%s: %s", tostring(handler), string.format(OPTION_HANDLER_NOT_FOUND, disabled)) + end + disabled = handler[disabled](handler) + end + end + if type(v.aliases) == "table" then + k = k .. " || " .. table.concat(v.aliases, " || ") + elseif type(v.aliases) == "string" then + k = k .. " || " .. v.aliases + end + if v.get then + local a1,a2,a3,a4 + if type(v.get) == "function" then + if options.pass then + a1,a2,a3,a4 = v.get(k) + else + a1,a2,a3,a4 = v.get() + end + else + local handler = v.handler or handler + if type(handler[v.get]) ~= "function" then + AceConsole:error("%s: %s", tostring(handler), string.format(OPTION_HANDLER_NOT_FOUND, v.get)) + end + if options.pass then + a1,a2,a3,a4 = handler[v.get](handler, k) + else + a1,a2,a3,a4 = handler[v.get](handler) + end + end + 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 = string.format("|c%02x%02x%02x%02x%02x%02x%02x%02x|r", 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 = string.format("|cff%02x%02x%02x%02x%02x%02x|r", 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 + s = tostring(v.validate[a1] or a1) + else + s = tostring(a1 or NONE) + end + if disabled then + local s = string.gsub(s, "|cff%x%x%x%x%x%x(.-)|r", "%1") + local desc = string.gsub(v.desc or NONE, "|cff%x%x%x%x%x%x(.-)|r", "%1") + print(string.format("|cffcfcfcf - %s: [%s] %s|r", k, s, desc)) + else + print(string.format(" - |cffffff7f%s: [|r%s|cffffff7f]|r %s", k, s, v.desc or NONE)) + end + else + if disabled then + local desc = string.gsub(v.desc or NONE, "|cff%x%x%x%x%x%x(.-)|r", "%1") + print(string.format("|cffcfcfcf - %s: %s", k, desc)) + else + print(string.format(" - |cffffff7f%s:|r %s", k, v.desc or NONE)) + end + end + end + end + for k in pairs(order) do + order[k] = nil + end + table_setn(order, 0) + else + if options.desc then + desc = options.desc + print(string.format("|cffffff7f%s:|r %s", 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(string.format("|cffffff7f%s:|r %s", USAGE, path)) + else + print(string.format("|cffffff7f%s:|r %s", USAGE, path), realOptions.cmdName or realOptions.name or self) + end + print(NO_OPTIONS_AVAILABLE) + end + end +end + +local function handlerFunc(self, chat, msg, options) + if not msg then + msg = "" + else + msg = string.gsub(msg, "^%s*(.-)%s*$", "%1") + msg = string.gsub(msg, "%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 + if type(handler[hidden]) ~= "function" then + AceConsole:error("%s: %s", tostring(handler), string.format(OPTION_HANDLER_NOT_FOUND, hidden)) + end + hidden = handler[hidden](handler) + end + end + if hidden then + disabled = true + elseif disabled then + if type(disabled) == "function" then + disabled = disabled() + elseif type(disabled) == "string" then + if type(handler[disabled]) ~= "function" then + AceConsole:error("%s: %s", tostring(handler), string.format(OPTION_HANDLER_NOT_FOUND, disabled)) + end + disabled = handler[disabled](handler) + end + end + local _G_this = this + local kind = string.lower(options.type or "group") + if disabled then + print(string.format(OPTION_IS_DISABLED, path), realOptions.cmdName or realOptions.name or self) + elseif kind == "text" then + if table.getn(args) > 0 then + if (type(options.validate) == "table" and table.getn(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 + table_setn(args, 0) + table.insert(args, 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 = string.lower(tostring(arg)) + for k,v in pairs(options.validate) do + if string.lower(v) == 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 string.lower(k) == arg then + args[1] = k + good = true + break + end + end + end + else + if type(handler[options.validate]) ~= "function" then + AceConsole:error("%s: %s", tostring(handler), string.format(OPTION_HANDLER_NOT_FOUND, 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 + table_setn(order, 0) + else + usage = options.usage or "" + end + print(string.format(options.error or IS_NOT_A_VALID_OPTION_FOR, tostring(table.concat(args, " ")), path), realOptions.cmdName or realOptions.name or self) + print(string.format("|cffffff7f%s:|r %s %s", USAGE, path, usage)) + return + end + end + + local var + if passTable then + if not passTable.get then + elseif type(passTable.get) == "function" then + var = passTable.get(passValue) + else + if type(handler[passTable.get]) ~= "function" then + AceConsole:error("%s: %s", tostring(handler), string.format(OPTION_HANDLER_NOT_FOUND, passTable.get)) + end + var = handler[passTable.get](handler, passValue) + end + else + if not options.get then + elseif type(options.get) == "function" then + var = options.get() + else + if type(handler[options.get]) ~= "function" then + AceConsole:error("%s: %s", tostring(handler), string.format(OPTION_HANDLER_NOT_FOUND, options.get)) + end + var = handler[options.get](handler) + end + end + + if var ~= args[1] then + 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", tostring(handler), string.format(OPTION_HANDLER_NOT_FOUND, 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", tostring(handler), string.format(OPTION_HANDLER_NOT_FOUND, options.set)) + end + handler[options.set](handler, unpack(args)) + end + end + end + end + + if table.getn(args) > 0 then + local var + if passTable then + if not passTable.get then + elseif type(passTable.get) == "function" then + var = passTable.get(passValue) + else + if type(handler[passTable.get]) ~= "function" then + AceConsole:error("%s: %s", tostring(handler), string.format(OPTION_HANDLER_NOT_FOUND, passTable.get)) + end + var = handler[passTable.get](handler, passValue) + end + else + if not options.get then + elseif type(options.get) == "function" then + var = options.get() + else + if type(handler[options.get]) ~= "function" then + AceConsole:error("%s: %s", tostring(handler), string.format(OPTION_HANDLER_NOT_FOUND, options.get)) + end + var = handler[options.get](handler) + end + end + if type(options.validate) == "table" then + var = options.validate[var] or var + end + if (passTable and passTable.get) or options.get then + print(string.format(options.message or IS_NOW_SET_TO, 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 + if passTable then + if type(passFunc) == "function" then + set(passValue) + else + if type(handler[passFunc]) ~= "function" then + AceConsole:error("%s: %s", tostring(handler), string.format(OPTION_HANDLER_NOT_FOUND, passFunc)) + end + handler[passFunc](handler, passValue) + end + else + local ret, msg + if type(options.func) == "function" then + options.func() + else + local handler = options.handler or self + if type(handler[options.func]) ~= "function" then + AceConsole:error("%s: %s", tostring(handler), string.format(OPTION_HANDLER_NOT_FOUND, options.func)) + end + handler[options.func](handler) + end + end + elseif kind == "toggle" 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", tostring(handler), string.format(OPTION_HANDLER_NOT_FOUND, passTable.get)) + end + var = handler[passTable.get](handler, passValue) + end + if type(passTable.set) == "function" then + passTable.set(passValue, not var) + else + if type(handler[passTable.set]) ~= "function" then + AceConsole:error("%s: %s", tostring(handler), string.format(OPTION_HANDLER_NOT_FOUND, passTable.set)) + end + handler[passTable.set](handler, passValue, not var) + end + if type(passTable.get) == "function" then + var = passTable.get(passValue) + else + var = handler[passTable.get](handler, passValue) + end + else + local handler = options.handler or self + if type(options.get) == "function" then + var = options.get() + else + if type(handler[options.get]) ~= "function" then + AceConsole:error("%s: %s", tostring(handler), string.format(OPTION_HANDLER_NOT_FOUND, options.get)) + end + var = handler[options.get](handler) + end + if type(options.set) == "function" then + options.set(not var) + else + if type(handler[options.set]) ~= "function" then + AceConsole:error("%s: %s", tostring(handler), string.format(OPTION_HANDLER_NOT_FOUND, options.set)) + end + handler[options.set](handler, not var) + end + if type(options.get) == "function" then + var = options.get() + else + var = handler[options.get](handler) + end + end + + print(string.format(options.message or IS_NOW_SET_TO, 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 table.getn(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 = string.format("(%s%s%s)", min, bit, max) + print(string.format(options.error or IS_NOT_A_VALID_VALUE_FOR, tostring(arg), path), realOptions.cmdName or realOptions.name or self) + print(string.format("|cffffff7f%s:|r %s %s", 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", tostring(handler), string.format(OPTION_HANDLER_NOT_FOUND, 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", tostring(handler), string.format(OPTION_HANDLER_NOT_FOUND, 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", tostring(handler), string.format(OPTION_HANDLER_NOT_FOUND, 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", tostring(handler), string.format(OPTION_HANDLER_NOT_FOUND, 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", tostring(handler), string.format(OPTION_HANDLER_NOT_FOUND, 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", tostring(handler), string.format(OPTION_HANDLER_NOT_FOUND, options.get)) + end + var = handler[options.get](handler) + end + end + + if var and options.isPercent then + var = tostring(var * 100) .. "%" + end + print(string.format(options.message or IS_NOW_SET_TO, 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 table.getn(args) > 0 then + local r,g,b,a + if table.getn(args) == 1 then + local arg = tostring(args[1]) + if options.hasAlpha then + if string.len(arg) == 8 and string.find(arg, "^%x*$") then + r,g,b,a = tonumber(string.sub(arg, 1, 2), 16) / 255, tonumber(string.sub(arg, 3, 4), 16) / 255, tonumber(string.sub(arg, 5, 6), 16) / 255, tonumber(string.sub(arg, 7, 8), 16) / 255 + end + else + if string.len(arg) == 6 and string.find(arg, "^%x*$") then + r,g,b = tonumber(string.sub(arg, 1, 2), 16) / 255, tonumber(string.sub(arg, 3, 4), 16) / 255, tonumber(string.sub(arg, 5, 6), 16) / 255 + end + end + elseif table.getn(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 string.len(a1) == 2) and string.find(a1, "^%x*$") and (type(a2) == "number" or string.len(a2) == 2) and string.find(a2, "^%x*$") and (type(a3) == "number" or string.len(a3) == 2) and string.find(a3, "^%x*$") and (type(a4) == "number" or string.len(a4) == 2) and string.find(a4, "^%x*$") then + r,g,b,a = tonumber(a1, 16) / 255, tonumber(a2, 16) / 255, tonumber(a3, 16) / 255, tonumber(a4, 16) / 255 + end + elseif table.getn(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 string.len(a1) == 2) and string.find(a1, "^%x*$") and (type(a2) == "number" or string.len(a2) == 2) and string.find(a2, "^%x*$") and (type(a3) == "number" or string.len(a3) == 2) and string.find(a3, "^%x*$") then + r,g,b = tonumber(a1, 16) / 255, tonumber(a2, 16) / 255, tonumber(a3, 16) / 255 + end + end + if not r then + print(string.format(options.error or IS_NOT_A_VALID_OPTION_FOR, table.concat(args, ' '), path), realOptions.cmdName or realOptions.name or self) + print(string.format("|cffffff7f%s:|r %s {0-1} {0-1} {0-1}%s", 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", tostring(handler), string.format(OPTION_HANDLER_NOT_FOUND, 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", tostring(handler), string.format(OPTION_HANDLER_NOT_FOUND, 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", tostring(handler), string.format(OPTION_HANDLER_NOT_FOUND, 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", tostring(handler), string.format(OPTION_HANDLER_NOT_FOUND, 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 = string.format("|c%02x%02x%02x%02x%02x%02x%02x%02x|r", a*255, r*255, g*255, b*255, r*255, g*255, b*255, a*255) + else + s = string.format("|cff%02x%02x%02x%02x%02x%02x|r", r*255, g*255, b*255, r*255, g*255, b*255) + end + else + s = NONE + end + print(string.format(options.message or IS_NOW_SET_TO, 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", tostring(handler), string.format(OPTION_HANDLER_NOT_FOUND, 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", tostring(handler), string.format(OPTION_HANDLER_NOT_FOUND, 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", tostring(handler), string.format(OPTION_HANDLER_NOT_FOUND, 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", tostring(handler), string.format(OPTION_HANDLER_NOT_FOUND, 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 = string.format("|c%02x%02x%02x%02x%02x%02x%02x%02x|r", a*255, r*255, g*255, b*255, r*255, g*255, b*255, a*255) + else + s = string.format("|cff%02x%02x%02x%02x%02x%02x|r", r*255, g*255, b*255, r*255, g*255, b*255) + end + else + s = NONE + end + print(string.format(t.message, 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", tostring(handler), string.format(OPTION_HANDLER_NOT_FOUND, 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", tostring(handler), string.format(OPTION_HANDLER_NOT_FOUND, 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", tostring(handler), string.format(OPTION_HANDLER_NOT_FOUND, 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", tostring(handler), string.format(OPTION_HANDLER_NOT_FOUND, 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 table.getn(args) == 0 then + printUsage(self, handler, realOptions, options, path, args) + else + -- invalid argument + print(string.format(options.error or IS_NOT_A_VALID_OPTION_FOR, 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 string.find(name, "^%w+$") or string.upper(name) ~= name or string.len(name) == 0 then + AceConsole:error("Argument #4 must be an uppercase, letters-only string with at least 1 character") + end + end + if slashCommands then + if table.getn(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 string.find(v, "^/[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 string.lower(options.type) == "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 then + repeat + name = string.char(math.random(26) + string.byte('A') - 1) .. string.char(math.random(26) + string.byte('A') - 1) .. string.char(math.random(26) + string.byte('A') - 1) .. string.char(math.random(26) + string.byte('A') - 1) .. string.char(math.random(26) + string.byte('A') - 1) .. string.char(math.random(26) + string.byte('A') - 1) .. string.char(math.random(26) + string.byte('A') - 1) .. string.char(math.random(26) + string.byte('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 + i = i + 1 + _G["SLASH_"..name..i] = command + if string.lower(command) ~= command then + i = i + 1 + _G["SLASH_"..name..i] = string.lower(command) + 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 string.lower(options.type) ~= "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 + error(tostring(addon) .. ": AceConsole: " .. position .. ": " .. err) + else + error(tostring(addon) .. ": AceConsole: " .. err) + end + end + self.nextAddon[addon] = nil + end + + self:RegisterChatCommand({ "/reload", "/rl", "/reloadui" }, ReloadUI, "RELOAD") + + local version = GetBuildInfo() + if string.find(version, "^2%.") then + -- 2.0.0 + self:RegisterChatCommand({ "/print" }, function(text) + RunScript("local function func(...) local arg = {...}; for k = 1,select('#', ...) do arg[k] = tostring(arg[k]) end DEFAULT_CHAT_FRAME:AddMessage(table.concat(arg, ' ')) end func(" .. text .. ")") + end, "PRINT") + else + self:RegisterChatCommand({ "/print" }, function(text) + RunScript("local function func(...) for k = 1,table.getn(arg) do arg[k] = tostring(arg[k]) end DEFAULT_CHAT_FRAME:AddMessage(table.concat(arg, ' ')) end func(" .. text .. ")") + end, "PRINT") + end +end + +function AceConsole:TabCompleteInfo(cmdpath) + local _, _, cmd = string.find(cmdpath, "(/%S+)") + if not cmd then + return + end + local path = string.sub(cmdpath, string.len(cmd) + 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 ac = AceLibrary("AceConsole-2.0") + local name, cmd, path = ac:TabCompleteInfo(string.sub(cmdpath, 1, pos)) + + if not ac.registry[name] then + return false + else + local validArgs = findTableLevel(ac, ac.registry[name], cmd, path or "") + if validArgs.args then + for arg in pairs(validArgs.args) do + table.insert(t, arg) + end + end + end + end, function(u, matches, gcs, cmdpath) + local ac = AceLibrary("AceConsole-2.0") + local name, cmd, path = ac:TabCompleteInfo(cmdpath) + if ac.registry[name] then + local validArgs, path2, argwork = findTableLevel(ac, ac.registry[name], cmd, path) + printUsage(ac, validArgs.handler, ac.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 + + self.super.activate(self, oldLib, oldDeactivate) + + 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 + + if oldDeactivate then + oldDeactivate(oldLib) + end +end + +AceLibrary:Register(AceConsole, MAJOR_VERSION, MINOR_VERSION, activate, nil, external) +AceConsole = AceLibrary(MAJOR_VERSION) diff --git a/Payload/Interface/Addons/nampowersettings/libs/AceDB-2.0/AceDB-2.0.lua b/Payload/Interface/Addons/nampowersettings/libs/AceDB-2.0/AceDB-2.0.lua index a6bbd10..9f696b9 100644 --- a/Payload/Interface/Addons/nampowersettings/libs/AceDB-2.0/AceDB-2.0.lua +++ b/Payload/Interface/Addons/nampowersettings/libs/AceDB-2.0/AceDB-2.0.lua @@ -1,1539 +1,1539 @@ ---[[ -Name: AceDB-2.0 -Revision: $Rev: 17797 $ -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 -]] - -local MAJOR_VERSION = "AceDB-2.0" -local MINOR_VERSION = "$Revision: 17798 $" - -if not AceLibrary then error(MAJOR_VERSION .. " requires AceLibrary") end -if not AceLibrary:IsNewVersion(MAJOR_VERSION, MINOR_VERSION) then return end - -if loadstring("return function(...) return ... end") and AceLibrary:HasInstance(MAJOR_VERSION) then return end -- lua51 check -if not AceLibrary:HasInstance("AceOO-2.0") then error(MAJOR_VERSION .. " requires AceOO-2.0") 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, CHARACTER, REALM, CLASS - -local function safecall(func,a,b,c,d,e,f,g,h,i) - local success, err = pcall(func,a,b,c,d,e,f,g,h,i) - if not success then geterrorhandler()(err) end -end - -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 || }" - 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 = "" - - CHARACTER = "Charakter: " - REALM = "Realm: " - CLASS = "Klasse: " -elseif GetLocale() == "esES" then - ACTIVE = "Activo" - ENABLED = "Activado" - STATE = "Estado" - TOGGLE_ACTIVE = "Suspende/reanuda este addon." - MAP_ACTIVESUSPENDED = { [true] = "|cff00ff00Activo|r", [false] = "|cffff0000Suspendido|r" } - SET_PROFILE = "Asigna perfil para este addon." - SET_PROFILE_USAGE = "{personaje || clase || reino || }" - PROFILE = "Perfil" - PLAYER_OF_REALM = "%s de %s" - CHOOSE_PROFILE_DESC = "Elige un perfil." - CHOOSE_PROFILE_GUI = "Elige" - COPY_PROFILE_DESC = "Copia configuración de otro perfil." - COPY_PROFILE_GUI = "Copia" - OTHER_PROFILE_DESC = "Elige otro perfil." - OTHER_PROFILE_GUI = "Otro" - OTHER_PROFILE_USAGE = "" - - CHARACTER = "Personaje: " - REALM = "Reino: " - CLASS = "Clase: " -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 || }" - 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 = "" - - CHARACTER = "Personnage: " - REALM = "Royaume: " - CLASS = "Classe: " -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 = "<프로파일명>" - - CHARACTER = "캐릭터: " - REALM = "서버: " - CLASS = "직업: " -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 = "<記錄檔名稱>" - - CHARACTER = "角色:" - REALM = "伺服器:" - CLASS = "聯業:" -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>" - - CHARACTER = "\229\173\151\231\172\166: " - REALM = "\229\159\159: " - CLASS = "\233\128\137\228\187\182\231\177\187: " -elseif GetLocale() == "ruRU" 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 = "Cкопировать настройки из другого профиля." - COPY_PROFILE_GUI = "Скопировать из" - OTHER_PROFILE_DESC = "Выбрать другой профиль." - OTHER_PROFILE_GUI = "Другое" - OTHER_PROFILE_USAGE = "<название профиля>" - - CHARACTER = "Персонаж: " - REALM = "Сервер: " - CLASS = "Класс: " -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 = "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 = "" - - CHARACTER = "Character: " - REALM = "Realm: " - CLASS = "Class: " -end - -local AceOO = AceLibrary("AceOO-2.0") -local AceEvent -local Mixin = AceOO.Mixin -local AceDB = Mixin { - "RegisterDB", - "RegisterDefaults", - "ResetDB", - "SetProfile", - "GetProfile", - "ToggleActive", - "IsActive", - "AcquireDBNamespace", - } -local Dewdrop = AceLibrary:HasInstance("Dewdrop-2.0") and AceLibrary("Dewdrop-2.0") - -local _G = getfenv(0) - -local table_setn -do - local version = GetBuildInfo() - if string.find(version, "^2%.") then - -- 2.0.0 - table_setn = function() end - else - table_setn = table.setn - end -end - -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" then - faction = FACTION_HORDE -else - faction = FACTION_ALLIANCE -end -local charID = string.format(PLAYER_OF_REALM, UnitName("player"), (string.gsub(GetRealmName(), "^%s*(.-)%s*$", "%1"))) -local realm = string.gsub(GetRealmName(), "^%s*(.-)%s*$", "%1") -local realmID = realm .. " - " .. faction -local classID = UnitClass("player") - -AceDB.CHAR_ID = charID -AceDB.REALM_ID = realmID -AceDB.CLASS_ID = classID - -AceDB.FACTION = faction -AceDB.REALM = realm -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 - table_setn(t, 0) - list[t] = true - end -end - -local caseInsensitive_mt = { - __index = function(self, key) - if type(key) ~= "string" then - return nil - end - local lowerKey = string.lower(key) - for k,v in pairs(self) do - if string.lower(k) == 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 = string.lower(key) - for k in pairs(self) do - if string.lower(k) == 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 == "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 == "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(string.format('Cannot access key %q in db table. You may want to use db.profile[%q]', tostring(key), tostring(key)), 2) -end, __newindex = function(db, key, value) - error(string.format('Cannot access key %q in db table. You may want to use db.profile[%q]', tostring(key), tostring(key)), 2) -end } - -local CrawlForSerialization -local CrawlForDeserialization - -local function SerializeObject(o) - local t = { o:Serialize() } - t[0] = o.class:GetLibraryVersion() - CrawlForSerialization(t) - return t -end - -local function DeserializeObject(t) - CrawlForDeserialization(t) - local className = t[0] - for i = 20, 1, -1 do - if t[i] then - table_setn(t, i) - break - end - end - local o = AceLibrary(className):Deserialize(unpack(t)) - table_setn(t, 0) - return o -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(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(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(t[0]) == "string" and AceLibrary:HasInstance(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(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(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 == "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 == "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(string.format('Cannot access key %q in db table. You may want to use db.profile[%q]', tostring(key), tostring(key)), 2) -end, __newindex = function(db, key, value) - error(string.format('Cannot access key %q in db table. You may want to use db.profile[%q]', tostring(key), tostring(key)), 2) -end } - -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 = {} - end - if not db.raw.currentProfile[charID] then - db.raw.currentProfile[charID] = "Default" - end - if db.raw.disabled then - setmetatable(db.raw.disabled, caseInsensitive_mt) - end - if self['acedb-profile-copylist'] then - local t = self['acedb-profile-copylist'] - for k,v in pairs(t) do - t[k] = nil - end - if db.raw.profiles then - for k in pairs(db.raw.profiles) do - if string.find(k, '^char/') then - local name = string.sub(k, 6) - if name ~= charID then - t[k] = CHARACTER .. name - end - elseif string.find(k, '^realm/') then - local name = string.sub(k, 7) - if name ~= realmID then - t[k] = REALM .. name - end - elseif string.find(k, '^class/') then - local name = string.sub(k, 7) - if name ~= classID then - t[k] = CLASS .. name - end - end - end - end - end - if self['acedb-profile-list'] then - local t = self['acedb-profile-list'] - for k,v in pairs(t) do - t[k] = nil - end - t.char = CHARACTER .. charID - t.realm = REALM .. realmID - t.class = CLASS .. classID - t.Default = "Default" - if db.raw.profiles then - for k in pairs(db.raw.profiles) do - if not string.find(k, '^char/') and not string.find(k, '^realm/') and not string.find(k, '^class/') then - t[k] = k - end - end - end - 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) - AceDB:argCheck(name, 2, "string") - AceDB:argCheck(charName, 3, "string", "nil") - if self.db then - AceDB:error("Cannot call \"RegisterDB\" if self.db is set.") - end - local stack = debugstack() - local addonName = string.gsub(stack, ".-\n.-\\AddOns\\(.-)\\.*", "%1") - self.db = { - name = name, - charName = charName - } - if AceDB.addonsLoaded[addonName] then - AceDB.InitializeDB(self, addonName) - else - AceDB.addonsToBeInitialized[self] = addonName - end - AceDB.registry[self] = true -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") - if kind ~= "char" and kind ~= "class" and kind ~= "profile" and kind ~= "account" and kind ~= "realm" then - AceDB:error("Bad argument #3 to `RegisterDefaults' (\"char\", \"class\", \"profile\", \"account\", or \"realm\" expected, got %q)", kind) - end - else - AceDB:argCheck(kind, 2, "string") - AceDB:argCheck(defaults, 3, "table") - if kind ~= "char" and kind ~= "class" and kind ~= "profile" and kind ~= "account" and kind ~= "realm" then - AceDB:error("Bad argument #2 to `RegisterDefaults' (\"char\", \"class\", \"profile\", \"account\", or \"realm\" expected, got %q)", kind) - end - 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) - AceDB:argCheck(kind, 2, "nil", "string") - 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 kind == nil 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) - end - end - elseif kind == "account" then - db.raw.account = nil - rawset(db, 'account', nil) - if db.namespaces then - for name,v in pairs(db.namespaces) do - rawset(v, 'account', nil) - end - end - elseif kind == "char" 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 - elseif kind == "realm" 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 - elseif kind == "class" 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 - elseif kind == "profile" then - local id = db.raw.currentProfile and db.raw.currentProfile[charID] or "Default" - if id == "char" then - id = "char/" .. charID - elseif id == "class" then - id = "class/" .. classID - elseif id == "realm" then - id = "realm/" .. realmID - end - 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 - 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] = "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 - table_setn(to, table.getn(from)) - setmetatable(to, from) - return to -end - -function AceDB:SetProfile(name, copyFrom) - AceDB:argCheck(name, 2, "string") - AceDB:argCheck(copyFrom, 3, "string", "nil") - 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 copy = false - local lowerName = string.lower(name) - local lowerCopyFrom = copyFrom and string.lower(copyFrom) - if string.sub(lowerName, 1, 5) == "char/" or string.sub(lowerName, 1, 6) == "realm/" or string.sub(lowerName, 1, 6) == "class/" then - if string.sub(lowerName, 1, 5) == "char/" then - name, copyFrom = "char", name - else - name, copyFrom = string.sub(lowerName, 1, 5), name - end - lowerName = string.lower(name) - lowerCopyFrom = string.lower(copyFrom) - end - if copyFrom then - if string.sub(lowerCopyFrom, 1, 5) == "char/" then - AceDB:assert(lowerName == "char", "If argument #3 starts with `char/', argument #2 must be `char'") - elseif string.sub(lowerCopyFrom, 1, 6) == "realm/" then - AceDB:assert(lowerName == "realm", "If argument #3 starts with `realm/', argument #2 must be `realm'") - elseif string.sub(lowerCopyFrom, 1, 6) == "class/" then - AceDB:assert(lowerName == "class", "If argument #3 starts with `class/', argument #2 must be `class'") - else - AceDB:assert(lowerName ~= "char" and lowerName ~= "realm" and lowerName ~= "class", "If argument #3 does not start with a special prefix, that prefix cannot be copied to.") - end - if not db.raw.profiles or not db.raw.profiles[copyFrom] then - AceDB:error("Cannot copy profile %q, it does not exist.", copyFrom) - elseif (string.sub(lowerName, 1, 5) == "char/" and string.sub(lowerName, 6) == string.lower(charID)) or (string.sub(lowerName, 1, 6) == "realm/" and string.sub(lowerName, 7) == string.lower(realmID)) or (string.sub(lowerName, 1, 6) == "class/" and string.sub(lowerName, 7) == string.lower(classID)) then - AceDB:error("Cannot copy profile %q, it is currently in use.", name) - end - end - local oldName = db.raw.currentProfile[charID] - if string.lower(oldName) == string.lower(name) 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 - if copyFrom then - for k,v in pairs(db.profile) do - db.profile[k] = nil - end - copyTable(db.profile, db.raw.profiles[copyFrom]) - 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 - copyTable(u.profile, db.raw.namespaces[l].profiles[copyFrom]) - inheritDefaults(u.profile, u.defaults and u.defaults.profile) - 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, oldName, oldProfileData, copyFrom) - end - end - end - current = current.super - end - if type(self.OnProfileEnable) == "function" then - safecall(self.OnProfileEnable, self, oldName, oldProfileData, copyFrom) - 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 - 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 - if not self['acedb-profile-list'][name] then - self['acedb-profile-list'][name] = name - end - 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 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.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 "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.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 "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 string.lower(v) == "default" 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) - local t = target['acedb-profile-list'] - for k,v in pairs(t) do - t[k] = nil - end - t.char = CHARACTER .. charID - t.realm = REALM .. realmID - t.class = CLASS .. classID - t.Default = "Default" - if target.db and target.db.raw then - local db = target.db - if db.raw.profiles then - for k in pairs(db.raw.profiles) do - if not string.find(k, '^char/') and not string.find(k, '^realm/') and not string.find(k, '^class/') then - t[k] = k - end - end - end - end - end - if not target['acedb-profile-copylist'] then - target['acedb-profile-copylist'] = setmetatable({}, caseInsensitive_mt) - if target.db and target.db.raw then - local t = target['acedb-profile-copylist'] - local db = target.db - - if db.raw.profiles then - for k in pairs(db.raw.profiles) do - if string.find(k, '^char/') then - local name = string.sub(k, 6) - if name ~= charID then - t[k] = CHARACTER .. name - end - elseif string.find(k, '^realm/') then - local name = string.sub(k, 7) - if name ~= realmID then - t[k] = REALM .. name - end - elseif string.find(k, '^class/') then - local name = string.sub(k, 7) - if name ~= classID then - t[k] = CLASS .. name - end - end - end - end - end - 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 = "GetProfile", - set = "SetProfile", - 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", - } - } - }, - } -end - -local function activate(self, oldLib, oldDeactivate) - AceDB = self - AceEvent = AceLibrary:HasInstance("AceEvent-2.0") and AceLibrary("AceEvent-2.0") - - self.super.activate(self, 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, 'profile', nil) - setmetatable(t.db, db_mt) - end - end - - if oldLib then - self.addonsToBeInitialized = oldLib.addonsToBeInitialized - self.addonsLoaded = oldLib.addonsLoaded - self.registry = oldLib.registry - end - if not self.addonsToBeInitialized then - self.addonsToBeInitialized = {} - end - if not self.addonsLoaded then - self.addonsLoaded = {} - end - if not self.registry then - self.registry = {} - end - - if oldLib then - oldDeactivate(oldLib) - end -end - -local function external(self, major, instance) - if major == "AceEvent-2.0" then - AceEvent = instance - - AceEvent:embed(self) - - self:RegisterEvent("ADDON_LOADED") - self:RegisterEvent("PLAYER_LOGOUT") - elseif major == "Dewdrop-2.0" then - Dewdrop = instance - end -end - -AceLibrary:Register(AceDB, MAJOR_VERSION, MINOR_VERSION, activate, nil, external) -AceDB = AceLibrary(MAJOR_VERSION) +--[[ +Name: AceDB-2.0 +Revision: $Rev: 17797 $ +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 +]] + +local MAJOR_VERSION = "AceDB-2.0" +local MINOR_VERSION = "$Revision: 17798 $" + +if not AceLibrary then error(MAJOR_VERSION .. " requires AceLibrary") end +if not AceLibrary:IsNewVersion(MAJOR_VERSION, MINOR_VERSION) then return end + +if loadstring("return function(...) return ... end") and AceLibrary:HasInstance(MAJOR_VERSION) then return end -- lua51 check +if not AceLibrary:HasInstance("AceOO-2.0") then error(MAJOR_VERSION .. " requires AceOO-2.0") 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, CHARACTER, REALM, CLASS + +local function safecall(func,a,b,c,d,e,f,g,h,i) + local success, err = pcall(func,a,b,c,d,e,f,g,h,i) + if not success then geterrorhandler()(err) end +end + +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 || }" + 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 = "" + + CHARACTER = "Charakter: " + REALM = "Realm: " + CLASS = "Klasse: " +elseif GetLocale() == "esES" then + ACTIVE = "Activo" + ENABLED = "Activado" + STATE = "Estado" + TOGGLE_ACTIVE = "Suspende/reanuda este addon." + MAP_ACTIVESUSPENDED = { [true] = "|cff00ff00Activo|r", [false] = "|cffff0000Suspendido|r" } + SET_PROFILE = "Asigna perfil para este addon." + SET_PROFILE_USAGE = "{personaje || clase || reino || }" + PROFILE = "Perfil" + PLAYER_OF_REALM = "%s de %s" + CHOOSE_PROFILE_DESC = "Elige un perfil." + CHOOSE_PROFILE_GUI = "Elige" + COPY_PROFILE_DESC = "Copia configuración de otro perfil." + COPY_PROFILE_GUI = "Copia" + OTHER_PROFILE_DESC = "Elige otro perfil." + OTHER_PROFILE_GUI = "Otro" + OTHER_PROFILE_USAGE = "" + + CHARACTER = "Personaje: " + REALM = "Reino: " + CLASS = "Clase: " +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 || }" + 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 = "" + + CHARACTER = "Personnage: " + REALM = "Royaume: " + CLASS = "Classe: " +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 = "<프로파일명>" + + CHARACTER = "캐릭터: " + REALM = "서버: " + CLASS = "직업: " +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 = "<記錄檔名稱>" + + CHARACTER = "角色:" + REALM = "伺服器:" + CLASS = "聯業:" +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>" + + CHARACTER = "\229\173\151\231\172\166: " + REALM = "\229\159\159: " + CLASS = "\233\128\137\228\187\182\231\177\187: " +elseif GetLocale() == "ruRU" 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 = "Cкопировать настройки из другого профиля." + COPY_PROFILE_GUI = "Скопировать из" + OTHER_PROFILE_DESC = "Выбрать другой профиль." + OTHER_PROFILE_GUI = "Другое" + OTHER_PROFILE_USAGE = "<название профиля>" + + CHARACTER = "Персонаж: " + REALM = "Сервер: " + CLASS = "Класс: " +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 = "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 = "" + + CHARACTER = "Character: " + REALM = "Realm: " + CLASS = "Class: " +end + +local AceOO = AceLibrary("AceOO-2.0") +local AceEvent +local Mixin = AceOO.Mixin +local AceDB = Mixin { + "RegisterDB", + "RegisterDefaults", + "ResetDB", + "SetProfile", + "GetProfile", + "ToggleActive", + "IsActive", + "AcquireDBNamespace", + } +local Dewdrop = AceLibrary:HasInstance("Dewdrop-2.0") and AceLibrary("Dewdrop-2.0") + +local _G = getfenv(0) + +local table_setn +do + local version = GetBuildInfo() + if string.find(version, "^2%.") then + -- 2.0.0 + table_setn = function() end + else + table_setn = table.setn + end +end + +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" then + faction = FACTION_HORDE +else + faction = FACTION_ALLIANCE +end +local charID = string.format(PLAYER_OF_REALM, UnitName("player"), (string.gsub(GetRealmName(), "^%s*(.-)%s*$", "%1"))) +local realm = string.gsub(GetRealmName(), "^%s*(.-)%s*$", "%1") +local realmID = realm .. " - " .. faction +local classID = UnitClass("player") + +AceDB.CHAR_ID = charID +AceDB.REALM_ID = realmID +AceDB.CLASS_ID = classID + +AceDB.FACTION = faction +AceDB.REALM = realm +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 + table_setn(t, 0) + list[t] = true + end +end + +local caseInsensitive_mt = { + __index = function(self, key) + if type(key) ~= "string" then + return nil + end + local lowerKey = string.lower(key) + for k,v in pairs(self) do + if string.lower(k) == 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 = string.lower(key) + for k in pairs(self) do + if string.lower(k) == 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 == "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 == "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(string.format('Cannot access key %q in db table. You may want to use db.profile[%q]', tostring(key), tostring(key)), 2) +end, __newindex = function(db, key, value) + error(string.format('Cannot access key %q in db table. You may want to use db.profile[%q]', tostring(key), tostring(key)), 2) +end } + +local CrawlForSerialization +local CrawlForDeserialization + +local function SerializeObject(o) + local t = { o:Serialize() } + t[0] = o.class:GetLibraryVersion() + CrawlForSerialization(t) + return t +end + +local function DeserializeObject(t) + CrawlForDeserialization(t) + local className = t[0] + for i = 20, 1, -1 do + if t[i] then + table_setn(t, i) + break + end + end + local o = AceLibrary(className):Deserialize(unpack(t)) + table_setn(t, 0) + return o +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(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(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(t[0]) == "string" and AceLibrary:HasInstance(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(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(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 == "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 == "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(string.format('Cannot access key %q in db table. You may want to use db.profile[%q]', tostring(key), tostring(key)), 2) +end, __newindex = function(db, key, value) + error(string.format('Cannot access key %q in db table. You may want to use db.profile[%q]', tostring(key), tostring(key)), 2) +end } + +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 = {} + end + if not db.raw.currentProfile[charID] then + db.raw.currentProfile[charID] = "Default" + end + if db.raw.disabled then + setmetatable(db.raw.disabled, caseInsensitive_mt) + end + if self['acedb-profile-copylist'] then + local t = self['acedb-profile-copylist'] + for k,v in pairs(t) do + t[k] = nil + end + if db.raw.profiles then + for k in pairs(db.raw.profiles) do + if string.find(k, '^char/') then + local name = string.sub(k, 6) + if name ~= charID then + t[k] = CHARACTER .. name + end + elseif string.find(k, '^realm/') then + local name = string.sub(k, 7) + if name ~= realmID then + t[k] = REALM .. name + end + elseif string.find(k, '^class/') then + local name = string.sub(k, 7) + if name ~= classID then + t[k] = CLASS .. name + end + end + end + end + end + if self['acedb-profile-list'] then + local t = self['acedb-profile-list'] + for k,v in pairs(t) do + t[k] = nil + end + t.char = CHARACTER .. charID + t.realm = REALM .. realmID + t.class = CLASS .. classID + t.Default = "Default" + if db.raw.profiles then + for k in pairs(db.raw.profiles) do + if not string.find(k, '^char/') and not string.find(k, '^realm/') and not string.find(k, '^class/') then + t[k] = k + end + end + end + 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) + AceDB:argCheck(name, 2, "string") + AceDB:argCheck(charName, 3, "string", "nil") + if self.db then + AceDB:error("Cannot call \"RegisterDB\" if self.db is set.") + end + local stack = debugstack() + local addonName = string.gsub(stack, ".-\n.-\\AddOns\\(.-)\\.*", "%1") + self.db = { + name = name, + charName = charName + } + if AceDB.addonsLoaded[addonName] then + AceDB.InitializeDB(self, addonName) + else + AceDB.addonsToBeInitialized[self] = addonName + end + AceDB.registry[self] = true +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") + if kind ~= "char" and kind ~= "class" and kind ~= "profile" and kind ~= "account" and kind ~= "realm" then + AceDB:error("Bad argument #3 to `RegisterDefaults' (\"char\", \"class\", \"profile\", \"account\", or \"realm\" expected, got %q)", kind) + end + else + AceDB:argCheck(kind, 2, "string") + AceDB:argCheck(defaults, 3, "table") + if kind ~= "char" and kind ~= "class" and kind ~= "profile" and kind ~= "account" and kind ~= "realm" then + AceDB:error("Bad argument #2 to `RegisterDefaults' (\"char\", \"class\", \"profile\", \"account\", or \"realm\" expected, got %q)", kind) + end + 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) + AceDB:argCheck(kind, 2, "nil", "string") + 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 kind == nil 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) + end + end + elseif kind == "account" then + db.raw.account = nil + rawset(db, 'account', nil) + if db.namespaces then + for name,v in pairs(db.namespaces) do + rawset(v, 'account', nil) + end + end + elseif kind == "char" 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 + elseif kind == "realm" 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 + elseif kind == "class" 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 + elseif kind == "profile" then + local id = db.raw.currentProfile and db.raw.currentProfile[charID] or "Default" + if id == "char" then + id = "char/" .. charID + elseif id == "class" then + id = "class/" .. classID + elseif id == "realm" then + id = "realm/" .. realmID + end + 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 + 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] = "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 + table_setn(to, table.getn(from)) + setmetatable(to, from) + return to +end + +function AceDB:SetProfile(name, copyFrom) + AceDB:argCheck(name, 2, "string") + AceDB:argCheck(copyFrom, 3, "string", "nil") + 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 copy = false + local lowerName = string.lower(name) + local lowerCopyFrom = copyFrom and string.lower(copyFrom) + if string.sub(lowerName, 1, 5) == "char/" or string.sub(lowerName, 1, 6) == "realm/" or string.sub(lowerName, 1, 6) == "class/" then + if string.sub(lowerName, 1, 5) == "char/" then + name, copyFrom = "char", name + else + name, copyFrom = string.sub(lowerName, 1, 5), name + end + lowerName = string.lower(name) + lowerCopyFrom = string.lower(copyFrom) + end + if copyFrom then + if string.sub(lowerCopyFrom, 1, 5) == "char/" then + AceDB:assert(lowerName == "char", "If argument #3 starts with `char/', argument #2 must be `char'") + elseif string.sub(lowerCopyFrom, 1, 6) == "realm/" then + AceDB:assert(lowerName == "realm", "If argument #3 starts with `realm/', argument #2 must be `realm'") + elseif string.sub(lowerCopyFrom, 1, 6) == "class/" then + AceDB:assert(lowerName == "class", "If argument #3 starts with `class/', argument #2 must be `class'") + else + AceDB:assert(lowerName ~= "char" and lowerName ~= "realm" and lowerName ~= "class", "If argument #3 does not start with a special prefix, that prefix cannot be copied to.") + end + if not db.raw.profiles or not db.raw.profiles[copyFrom] then + AceDB:error("Cannot copy profile %q, it does not exist.", copyFrom) + elseif (string.sub(lowerName, 1, 5) == "char/" and string.sub(lowerName, 6) == string.lower(charID)) or (string.sub(lowerName, 1, 6) == "realm/" and string.sub(lowerName, 7) == string.lower(realmID)) or (string.sub(lowerName, 1, 6) == "class/" and string.sub(lowerName, 7) == string.lower(classID)) then + AceDB:error("Cannot copy profile %q, it is currently in use.", name) + end + end + local oldName = db.raw.currentProfile[charID] + if string.lower(oldName) == string.lower(name) 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 + if copyFrom then + for k,v in pairs(db.profile) do + db.profile[k] = nil + end + copyTable(db.profile, db.raw.profiles[copyFrom]) + 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 + copyTable(u.profile, db.raw.namespaces[l].profiles[copyFrom]) + inheritDefaults(u.profile, u.defaults and u.defaults.profile) + 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, oldName, oldProfileData, copyFrom) + end + end + end + current = current.super + end + if type(self.OnProfileEnable) == "function" then + safecall(self.OnProfileEnable, self, oldName, oldProfileData, copyFrom) + 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 + 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 + if not self['acedb-profile-list'][name] then + self['acedb-profile-list'][name] = name + end + 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 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.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 "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.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 "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 string.lower(v) == "default" 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) + local t = target['acedb-profile-list'] + for k,v in pairs(t) do + t[k] = nil + end + t.char = CHARACTER .. charID + t.realm = REALM .. realmID + t.class = CLASS .. classID + t.Default = "Default" + if target.db and target.db.raw then + local db = target.db + if db.raw.profiles then + for k in pairs(db.raw.profiles) do + if not string.find(k, '^char/') and not string.find(k, '^realm/') and not string.find(k, '^class/') then + t[k] = k + end + end + end + end + end + if not target['acedb-profile-copylist'] then + target['acedb-profile-copylist'] = setmetatable({}, caseInsensitive_mt) + if target.db and target.db.raw then + local t = target['acedb-profile-copylist'] + local db = target.db + + if db.raw.profiles then + for k in pairs(db.raw.profiles) do + if string.find(k, '^char/') then + local name = string.sub(k, 6) + if name ~= charID then + t[k] = CHARACTER .. name + end + elseif string.find(k, '^realm/') then + local name = string.sub(k, 7) + if name ~= realmID then + t[k] = REALM .. name + end + elseif string.find(k, '^class/') then + local name = string.sub(k, 7) + if name ~= classID then + t[k] = CLASS .. name + end + end + end + end + end + 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 = "GetProfile", + set = "SetProfile", + 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", + } + } + }, + } +end + +local function activate(self, oldLib, oldDeactivate) + AceDB = self + AceEvent = AceLibrary:HasInstance("AceEvent-2.0") and AceLibrary("AceEvent-2.0") + + self.super.activate(self, 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, 'profile', nil) + setmetatable(t.db, db_mt) + end + end + + if oldLib then + self.addonsToBeInitialized = oldLib.addonsToBeInitialized + self.addonsLoaded = oldLib.addonsLoaded + self.registry = oldLib.registry + end + if not self.addonsToBeInitialized then + self.addonsToBeInitialized = {} + end + if not self.addonsLoaded then + self.addonsLoaded = {} + end + if not self.registry then + self.registry = {} + 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) diff --git a/Payload/Interface/Addons/nampowersettings/libs/AceDebug-2.0/AceDebug-2.0.lua b/Payload/Interface/Addons/nampowersettings/libs/AceDebug-2.0/AceDebug-2.0.lua index 8683c8c..bf9a8d7 100644 --- a/Payload/Interface/Addons/nampowersettings/libs/AceDebug-2.0/AceDebug-2.0.lua +++ b/Payload/Interface/Addons/nampowersettings/libs/AceDebug-2.0/AceDebug-2.0.lua @@ -1,245 +1,245 @@ ---[[ -Name: AceDebug-2.0 -Revision: $Rev: 17638 $ -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 -]] - -local MAJOR_VERSION = "AceDebug-2.0" -local MINOR_VERSION = "$Revision: 17639 $" - -if not AceLibrary then error(MAJOR_VERSION .. " requires AceLibrary") end -if not AceLibrary:IsNewVersion(MAJOR_VERSION, MINOR_VERSION) then return end - -if loadstring("return function(...) return ... end") and AceLibrary:HasInstance(MAJOR_VERSION) then return end -- lua51 check -if not AceLibrary:HasInstance("AceOO-2.0") then error(MAJOR_VERSION .. " requires AceOO-2.0") end - -local DEBUGGING, TOGGLE_DEBUGGING - -if GetLocale() == "frFR" then - DEBUGGING = "D\195\169boguage" - TOGGLE_DEBUGGING = "Activer/d\195\169sactiver le d\195\169boguage" -elseif GetLocale() == "esES" then - DEBUGGING = "Depurar" - TOGGLE_DEBUGGING = "Activar/desactivar depurar" -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() == "ruRU" then - DEBUGGING = "Отладка" - TOGGLE_DEBUGGING = "Вкл/Выкл отладку для этого аддона." -else -- enUS - DEBUGGING = "Debugging" - TOGGLE_DEBUGGING = "Enable/disable debugging" -end - -local table_setn -do - local version = GetBuildInfo() - if string.find(version, "^2%.") then - -- 2.0.0 - table_setn = function() end - else - table_setn = table.setn - end -end - -local math_mod = math.mod or math.fmod - -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, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20) - if not self.debugging then return end - - local output = string.format("|cff7fff7f(DEBUG) %s:[%s%3d]|r", tostring(self), date("%H:%M:%S"), math_mod(GetTime(), 1) * 1000) - - if string.find(tostring(a1), "%%") then - output = output .. " " .. string.format(tostring(a1), tostring(a2), tostring(a3), tostring(a4), tostring(a5), tostring(a6), tostring(a7), tostring(a8), tostring(a9), tostring(a10), tostring(a11), tostring(a12), tostring(a13), tostring(a14), tostring(a15), tostring(a16), tostring(a17), tostring(a18), tostring(a19), tostring(a20)) - else - if not tmp then - tmp = {} - end - - -- This block dynamically rebuilds the tmp array stopping on the first nil. - table.insert(tmp, output) - - table.insert(tmp, tostring(a1)) - table.insert(tmp, a2) - table.insert(tmp, a3) - table.insert(tmp, a4) - table.insert(tmp, a5) - table.insert(tmp, a6) - table.insert(tmp, a7) - table.insert(tmp, a8) - table.insert(tmp, a9) - table.insert(tmp, a10) - table.insert(tmp, a11) - table.insert(tmp, a12) - table.insert(tmp, a13) - table.insert(tmp, a14) - table.insert(tmp, a15) - table.insert(tmp, a16) - table.insert(tmp, a17) - table.insert(tmp, a18) - table.insert(tmp, a19) - table.insert(tmp, a20) - while tmp[table.getn(tmp)] == nil do - table.remove(tmp) - end - for k = 1, table.getn(tmp) do - tmp[k] = tostring(tmp[k]) - end - - output = table.concat(tmp, " ") - - for k,v in pairs(tmp) do - tmp[k] = nil - end - table_setn(tmp, 0) - end - - print(output, r, g, b, frame or self.debugFrame, delay) -end - -function AceDebug:Debug(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20) - AceDebug.CustomDebug(self, nil, nil, nil, nil, nil, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20) -end - -function AceDebug:IsDebugging() - return self.debugging -end - -function AceDebug:SetDebugging(debugging) - self.debugging = debugging -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, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20) - 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 = string.format("|cff7fff7f(DEBUG) %s:[%s.%3d]|r", tostring(self), date("%H:%M:%S"), math_mod(GetTime(), 1) * 1000) - - if string.find(tostring(a1), "%%") then - output = output .. " " .. string.format(tostring(a1), tostring(a2), tostring(a3), tostring(a4), tostring(a5), tostring(a6), tostring(a7), tostring(a8), tostring(a9), tostring(a10), tostring(a11), tostring(a12), tostring(a13), tostring(a14), tostring(a15), tostring(a16), tostring(a17), tostring(a18), tostring(a19), tostring(a20)) - else - if not tmp then - tmp = {} - end - - -- This block dynamically rebuilds the tmp array stopping on the first nil. - table.insert(tmp, output) - - table.insert(tmp, tostring(a1)) - table.insert(tmp, a2) - table.insert(tmp, a3) - table.insert(tmp, a4) - table.insert(tmp, a5) - table.insert(tmp, a6) - table.insert(tmp, a7) - table.insert(tmp, a8) - table.insert(tmp, a9) - table.insert(tmp, a10) - table.insert(tmp, a11) - table.insert(tmp, a12) - table.insert(tmp, a13) - table.insert(tmp, a14) - table.insert(tmp, a15) - table.insert(tmp, a16) - table.insert(tmp, a17) - table.insert(tmp, a18) - table.insert(tmp, a19) - table.insert(tmp, a20) - while tmp[table.getn(tmp)] == nil do - table.remove(tmp) - end - for k = 1, table.getn(tmp) do - tmp[k] = tostring(tmp[k]) - end - - output = table.concat(tmp, " ") - - for k,v in pairs(tmp) do - tmp[k] = nil - end - table_setn(tmp, 0) - end - - print(output, r, g, b, frame or self.debugFrame, delay) -end - -function AceDebug:LevelDebug(level, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20) - 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, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20) -end - - -local options -function AceDebug:GetAceOptionsDataTable(target) - if not options then - options = { - debug = { - name = DEBUGGING, - desc = TOGGLE_DEBUGGING, - type = "toggle", - get = "IsDebugging", - set = "SetDebugging", - order = -2, - } - } - end - return options -end -AceLibrary:Register(AceDebug, MAJOR_VERSION, MINOR_VERSION, AceDebug.activate) -AceDebug = AceLibrary(MAJOR_VERSION) +--[[ +Name: AceDebug-2.0 +Revision: $Rev: 17638 $ +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 +]] + +local MAJOR_VERSION = "AceDebug-2.0" +local MINOR_VERSION = "$Revision: 17639 $" + +if not AceLibrary then error(MAJOR_VERSION .. " requires AceLibrary") end +if not AceLibrary:IsNewVersion(MAJOR_VERSION, MINOR_VERSION) then return end + +if loadstring("return function(...) return ... end") and AceLibrary:HasInstance(MAJOR_VERSION) then return end -- lua51 check +if not AceLibrary:HasInstance("AceOO-2.0") then error(MAJOR_VERSION .. " requires AceOO-2.0") end + +local DEBUGGING, TOGGLE_DEBUGGING + +if GetLocale() == "frFR" then + DEBUGGING = "D\195\169boguage" + TOGGLE_DEBUGGING = "Activer/d\195\169sactiver le d\195\169boguage" +elseif GetLocale() == "esES" then + DEBUGGING = "Depurar" + TOGGLE_DEBUGGING = "Activar/desactivar depurar" +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() == "ruRU" then + DEBUGGING = "Отладка" + TOGGLE_DEBUGGING = "Вкл/Выкл отладку для этого аддона." +else -- enUS + DEBUGGING = "Debugging" + TOGGLE_DEBUGGING = "Enable/disable debugging" +end + +local table_setn +do + local version = GetBuildInfo() + if string.find(version, "^2%.") then + -- 2.0.0 + table_setn = function() end + else + table_setn = table.setn + end +end + +local math_mod = math.mod or math.fmod + +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, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20) + if not self.debugging then return end + + local output = string.format("|cff7fff7f(DEBUG) %s:[%s%3d]|r", tostring(self), date("%H:%M:%S"), math_mod(GetTime(), 1) * 1000) + + if string.find(tostring(a1), "%%") then + output = output .. " " .. string.format(tostring(a1), tostring(a2), tostring(a3), tostring(a4), tostring(a5), tostring(a6), tostring(a7), tostring(a8), tostring(a9), tostring(a10), tostring(a11), tostring(a12), tostring(a13), tostring(a14), tostring(a15), tostring(a16), tostring(a17), tostring(a18), tostring(a19), tostring(a20)) + else + if not tmp then + tmp = {} + end + + -- This block dynamically rebuilds the tmp array stopping on the first nil. + table.insert(tmp, output) + + table.insert(tmp, tostring(a1)) + table.insert(tmp, a2) + table.insert(tmp, a3) + table.insert(tmp, a4) + table.insert(tmp, a5) + table.insert(tmp, a6) + table.insert(tmp, a7) + table.insert(tmp, a8) + table.insert(tmp, a9) + table.insert(tmp, a10) + table.insert(tmp, a11) + table.insert(tmp, a12) + table.insert(tmp, a13) + table.insert(tmp, a14) + table.insert(tmp, a15) + table.insert(tmp, a16) + table.insert(tmp, a17) + table.insert(tmp, a18) + table.insert(tmp, a19) + table.insert(tmp, a20) + while tmp[table.getn(tmp)] == nil do + table.remove(tmp) + end + for k = 1, table.getn(tmp) do + tmp[k] = tostring(tmp[k]) + end + + output = table.concat(tmp, " ") + + for k,v in pairs(tmp) do + tmp[k] = nil + end + table_setn(tmp, 0) + end + + print(output, r, g, b, frame or self.debugFrame, delay) +end + +function AceDebug:Debug(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20) + AceDebug.CustomDebug(self, nil, nil, nil, nil, nil, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20) +end + +function AceDebug:IsDebugging() + return self.debugging +end + +function AceDebug:SetDebugging(debugging) + self.debugging = debugging +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, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20) + 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 = string.format("|cff7fff7f(DEBUG) %s:[%s.%3d]|r", tostring(self), date("%H:%M:%S"), math_mod(GetTime(), 1) * 1000) + + if string.find(tostring(a1), "%%") then + output = output .. " " .. string.format(tostring(a1), tostring(a2), tostring(a3), tostring(a4), tostring(a5), tostring(a6), tostring(a7), tostring(a8), tostring(a9), tostring(a10), tostring(a11), tostring(a12), tostring(a13), tostring(a14), tostring(a15), tostring(a16), tostring(a17), tostring(a18), tostring(a19), tostring(a20)) + else + if not tmp then + tmp = {} + end + + -- This block dynamically rebuilds the tmp array stopping on the first nil. + table.insert(tmp, output) + + table.insert(tmp, tostring(a1)) + table.insert(tmp, a2) + table.insert(tmp, a3) + table.insert(tmp, a4) + table.insert(tmp, a5) + table.insert(tmp, a6) + table.insert(tmp, a7) + table.insert(tmp, a8) + table.insert(tmp, a9) + table.insert(tmp, a10) + table.insert(tmp, a11) + table.insert(tmp, a12) + table.insert(tmp, a13) + table.insert(tmp, a14) + table.insert(tmp, a15) + table.insert(tmp, a16) + table.insert(tmp, a17) + table.insert(tmp, a18) + table.insert(tmp, a19) + table.insert(tmp, a20) + while tmp[table.getn(tmp)] == nil do + table.remove(tmp) + end + for k = 1, table.getn(tmp) do + tmp[k] = tostring(tmp[k]) + end + + output = table.concat(tmp, " ") + + for k,v in pairs(tmp) do + tmp[k] = nil + end + table_setn(tmp, 0) + end + + print(output, r, g, b, frame or self.debugFrame, delay) +end + +function AceDebug:LevelDebug(level, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20) + 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, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20) +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) diff --git a/Payload/Interface/Addons/nampowersettings/libs/AceEvent-2.0/AceEvent-2.0.lua b/Payload/Interface/Addons/nampowersettings/libs/AceEvent-2.0/AceEvent-2.0.lua index c654568..326ee5b 100644 --- a/Payload/Interface/Addons/nampowersettings/libs/AceEvent-2.0/AceEvent-2.0.lua +++ b/Payload/Interface/Addons/nampowersettings/libs/AceEvent-2.0/AceEvent-2.0.lua @@ -1,973 +1,973 @@ ---[[ -Name: AceEvent-2.0 -Revision: $Rev: 17803 $ -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/AceEvent-2.0 -SVN: http://svn.wowace.com/root/trunk/Ace2/AceEvent-2.0 -Description: Mixin to allow for event handling, scheduling, and inter-addon - communication. -Dependencies: AceLibrary, AceOO-2.0 -]] - -local MAJOR_VERSION = "AceEvent-2.0" -local MINOR_VERSION = "$Revision: 17803 $" - -if not AceLibrary then error(MAJOR_VERSION .. " requires AceLibrary") end -if not AceLibrary:IsNewVersion(MAJOR_VERSION, MINOR_VERSION) then return end - -if loadstring("return function(...) return ... end") and AceLibrary:HasInstance(MAJOR_VERSION) then return end -- lua51 check -if not AceLibrary:HasInstance("AceOO-2.0") then error(MAJOR_VERSION .. " requires AceOO-2.0") end - -local AceOO = AceLibrary:GetInstance("AceOO-2.0") -local Mixin = AceOO.Mixin -local AceEvent = Mixin { - "RegisterEvent", - "RegisterAllEvents", - "UnregisterEvent", - "UnregisterAllEvents", - "TriggerEvent", - "ScheduleEvent", - "ScheduleRepeatingEvent", - "CancelScheduledEvent", - "CancelAllScheduledEvents", - "IsEventRegistered", - "IsEventScheduled", - "RegisterBucketEvent", - "UnregisterBucketEvent", - "UnregisterAllBucketEvents", - "IsBucketEventRegistered", - } - -local table_setn -do - local version = GetBuildInfo() - if string.find(version, "^2%.") then - -- 2.0.0 - table_setn = function() end - else - table_setn = table.setn - end -end - -local weakKey = {__mode="k"} -local new, del -do - local list = setmetatable({}, weakKey) - 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 FAKE_NIL -local RATE - -local eventsWhichHappenOnce = { - PLAYER_LOGIN = true, - AceEvent_FullyInitialized = true, - VARIABLES_LOADED = true, - PLAYER_LOGOUT = true, -} - -local registeringFromAceEvent -function AceEvent:RegisterEvent(event, method, once) - AceEvent:argCheck(event, 2, "string") - if self == AceEvent and not registeringFromAceEvent then - AceEvent:argCheck(method, 3, "function") - self = method - else - AceEvent:argCheck(method, 3, "string", "function", "nil", "boolean", "number") - if type(method) == "boolean" or type(method) == "number" then - AceEvent:argCheck(once, 4, "nil") - once, method = method, event - end - end - AceEvent:argCheck(once, 4, "number", "boolean", "nil") - if eventsWhichHappenOnce[event] then - once = true - end - local throttleRate - if type(once) == "number" then - throttleRate, once = once - end - if not method then - method = event - end - if type(method) == "string" and type(self[method]) ~= "function" then - AceEvent:error("Cannot register event %q to method %q, it does not exist", event, method) - else - assert(type(method) == "function" or type(method) == "string") - end - - local AceEvent_registry = AceEvent.registry - if not AceEvent_registry[event] then - AceEvent_registry[event] = new() - AceEvent.frame:RegisterEvent(event) - end - - local remember = true - if AceEvent_registry[event][self] then - remember = false - end - AceEvent_registry[event][self] = method - - local AceEvent_onceRegistry = AceEvent.onceRegistry - if once then - if not AceEvent_onceRegistry then - AceEvent.onceRegistry = new() - AceEvent_onceRegistry = AceEvent.onceRegistry - end - if not AceEvent_onceRegistry[event] then - AceEvent_onceRegistry[event] = new() - end - AceEvent_onceRegistry[event][self] = true - else - if AceEvent_onceRegistry and AceEvent_onceRegistry[event] then - AceEvent_onceRegistry[event][self] = nil - if not next(AceEvent_onceRegistry[event]) then - AceEvent_onceRegistry[event] = del(AceEvent_onceRegistry[event]) - end - end - end - - local AceEvent_throttleRegistry = AceEvent.throttleRegistry - if throttleRate then - if not AceEvent_throttleRegistry then - AceEvent.throttleRegistry = new() - AceEvent_throttleRegistry = AceEvent.throttleRegistry - end - if not AceEvent_throttleRegistry[event] then - AceEvent_throttleRegistry[event] = new() - end - if AceEvent_throttleRegistry[event][self] then - AceEvent_throttleRegistry[event][self] = del(AceEvent_throttleRegistry[event][self]) - end - AceEvent_throttleRegistry[event][self] = setmetatable(new(), weakKey) - local t = AceEvent_throttleRegistry[event][self] - t[RATE] = throttleRate - else - if AceEvent_throttleRegistry and AceEvent_throttleRegistry[event] then - if AceEvent_throttleRegistry[event][self] then - AceEvent_throttleRegistry[event][self] = del(AceEvent_throttleRegistry[event][self]) - end - if not next(AceEvent_throttleRegistry[event]) then - AceEvent_throttleRegistry[event] = del(AceEvent_throttleRegistry[event]) - end - end - end - - if remember then - AceEvent:TriggerEvent("AceEvent_EventRegistered", self, event) - end -end - -local ALL_EVENTS - -function AceEvent:RegisterAllEvents(method) - if self == AceEvent then - AceEvent:argCheck(method, 1, "function") - self = method - else - AceEvent:argCheck(method, 1, "string", "function") - if type(method) == "string" and type(self[method]) ~= "function" then - AceEvent:error("Cannot register all events to method %q, it does not exist", method) - end - end - - local AceEvent_registry = AceEvent.registry - if not AceEvent_registry[ALL_EVENTS] then - AceEvent_registry[ALL_EVENTS] = new() - AceEvent.frame:RegisterAllEvents() - end - - AceEvent_registry[ALL_EVENTS][self] = method -end - -local _G = getfenv(0) -local memstack, timestack = {}, {} -local memdiff, timediff -function AceEvent:TriggerEvent(event, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20) - AceEvent:argCheck(event, 2, "string") - local AceEvent_registry = AceEvent.registry - if (not AceEvent_registry[event] or not next(AceEvent_registry[event])) and (not AceEvent_registry[ALL_EVENTS] or not next(AceEvent_registry[ALL_EVENTS])) then - return - end - local _G_event = _G.event - _G.event = event - local lastEvent = AceEvent.currentEvent - AceEvent.currentEvent = event - - local AceEvent_onceRegistry = AceEvent.onceRegistry - local AceEvent_debugTable = AceEvent.debugTable - if AceEvent_onceRegistry and AceEvent_onceRegistry[event] then - local tmp = new() - for obj, method in pairs(AceEvent_onceRegistry[event]) do - tmp[obj] = AceEvent_registry[event] and AceEvent_registry[event][obj] or nil - end - local obj = next(tmp) - while obj do - local mem, time - if AceEvent_debugTable then - if not AceEvent_debugTable[event] then - AceEvent_debugTable[event] = new() - end - if not AceEvent_debugTable[event][obj] then - AceEvent_debugTable[event][obj] = new() - AceEvent_debugTable[event][obj].mem = 0 - AceEvent_debugTable[event][obj].time = 0 - AceEvent_debugTable[event][obj].count = 0 - end - if memdiff then - table.insert(memstack, memdiff) - table.insert(timestack, timediff) - end - memdiff, timediff = 0, 0 - mem, time = gcinfo(), GetTime() - end - local method = tmp[obj] - AceEvent.UnregisterEvent(obj, event) - if type(method) == "string" then - local obj_method = obj[method] - if obj_method then - obj_method(obj, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20) - end - elseif method then -- function - method(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20) - end - if AceEvent_debugTable then - local dmem, dtime = memdiff, timediff - mem, time = gcinfo() - mem - memdiff, GetTime() - time - timediff - AceEvent_debugTable[event][obj].mem = AceEvent_debugTable[event][obj].mem + mem - AceEvent_debugTable[event][obj].time = AceEvent_debugTable[event][obj].time + time - AceEvent_debugTable[event][obj].count = AceEvent_debugTable[event][obj].count + 1 - - memdiff, timediff = table.remove(memstack), table.remove(timestack) - if memdiff then - memdiff = memdiff + mem + dmem - timediff = timediff + time + dtime - end - end - tmp[obj] = nil - obj = next(tmp) - end - del(tmp) - end - - local AceEvent_throttleRegistry = AceEvent.throttleRegistry - local throttleTable = AceEvent_throttleRegistry and AceEvent_throttleRegistry[event] - if AceEvent_registry[event] then - local tmp = new() - for obj, method in pairs(AceEvent_registry[event]) do - tmp[obj] = method - end - local obj = next(tmp) - while obj do - local method = tmp[obj] - local continue = false - if throttleTable and throttleTable[obj] then - local a1 = a1 - if a1 == nil then - a1 = FAKE_NIL - end - if not throttleTable[obj][a1] or GetTime() - throttleTable[obj][a1] >= throttleTable[obj][RATE] then - throttleTable[obj][a1] = GetTime() - else - continue = true - end - end - if not continue then - local mem, time - if AceEvent_debugTable then - if not AceEvent_debugTable[event] then - AceEvent_debugTable[event] = new() - end - if not AceEvent_debugTable[event][obj] then - AceEvent_debugTable[event][obj] = new() - AceEvent_debugTable[event][obj].mem = 0 - AceEvent_debugTable[event][obj].time = 0 - AceEvent_debugTable[event][obj].count = 0 - end - if memdiff then - table.insert(memstack, memdiff) - table.insert(timestack, timediff) - end - memdiff, timediff = 0, 0 - mem, time = gcinfo(), GetTime() - end - if type(method) == "string" then - local obj_method = obj[method] - if obj_method then - obj_method(obj, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20) - end - elseif method then -- function - method(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20) - end - if AceEvent_debugTable then - local dmem, dtime = memdiff, timediff - mem, time = gcinfo() - mem - memdiff, GetTime() - time - timediff - AceEvent_debugTable[event][obj].mem = AceEvent_debugTable[event][obj].mem + mem - AceEvent_debugTable[event][obj].time = AceEvent_debugTable[event][obj].time + time - AceEvent_debugTable[event][obj].count = AceEvent_debugTable[event][obj].count + 1 - - memdiff, timediff = table.remove(memstack), table.remove(timestack) - if memdiff then - memdiff = memdiff + mem + dmem - timediff = timediff + time + dtime - end - end - end - tmp[obj] = nil - obj = next(tmp) - end - del(tmp) - end - if AceEvent_registry[ALL_EVENTS] then - local tmp = new() - for obj, method in pairs(AceEvent_registry[ALL_EVENTS]) do - tmp[obj] = method - end - local obj = next(tmp) - while obj do - local method = tmp[obj] - local mem, time - if AceEvent_debugTable then - if not AceEvent_debugTable[event] then - AceEvent_debugTable[event] = new() - end - if not AceEvent_debugTable[event][obj] then - AceEvent_debugTable[event][obj] = new() - AceEvent_debugTable[event][obj].mem = 0 - AceEvent_debugTable[event][obj].time = 0 - AceEvent_debugTable[event][obj].count = 0 - end - if memdiff then - table.insert(memstack, memdiff) - table.insert(timestack, timediff) - end - memdiff, timediff = 0, 0 - mem, time = gcinfo(), GetTime() - end - if type(method) == "string" then - local obj_method = obj[method] - if obj_method then - obj_method(obj, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20) - end - elseif method then -- function - method(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20) - end - if AceEvent_debugTable then - local dmem, dtime = memdiff, timediff - mem, time = gcinfo() - mem - memdiff, GetTime() - time - timediff - AceEvent_debugTable[event][obj].mem = AceEvent_debugTable[event][obj].mem + mem - AceEvent_debugTable[event][obj].time = AceEvent_debugTable[event][obj].time + time - AceEvent_debugTable[event][obj].count = AceEvent_debugTable[event][obj].count + 1 - - memdiff, timediff = table.remove(memstack), table.remove(timestack) - if memdiff then - memdiff = memdiff + mem + dmem - timediff = timediff + time + dtime - end - end - tmp[obj] = nil - obj = next(tmp) - end - del(tmp) - end - _G.event = _G_event - AceEvent.currentEvent = lastEvent -end - --- local accessors -local getn = table.getn -local tinsert = table.insert -local tremove = table.remove -local floor = math.floor -local GetTime = GetTime -local next = next -local pairs = pairs -local unpack = unpack - -local delayRegistry -local tmp = {} -local function OnUpdate() - local t = GetTime() - for k,v in pairs(delayRegistry) do - tmp[k] = true - end - for k in pairs(tmp) do - local v = delayRegistry[k] - if v then - local v_time = v.time - if not v_time then - delayRegistry[k] = del(v) - elseif v_time <= t then - local v_repeatDelay = v.repeatDelay - if v_repeatDelay then - -- use the event time, not the current time, else timing inaccuracies add up over time - v.time = v_time + v_repeatDelay - end - local event = v.event - local mem, time - if AceEvent_debugTable then - mem, time = gcinfo(), GetTime() - end - if type(event) == "function" then - event(unpack(v)) - else - AceEvent:TriggerEvent(event, unpack(v)) - end - if AceEvent_debugTable then - mem, time = gcinfo() - mem, GetTime() - time - v.mem = v.mem + mem - v.timeSpent = v.timeSpent + time - v.count = v.count + 1 - end - if not v_repeatDelay then - local x = delayRegistry[k] - if x and x.time == v_time then -- check if it was manually reset - delayRegistry[k] = del(v) - end - end - end - end - end - for k in pairs(tmp) do - tmp[k] = nil - end - if not next(delayRegistry) then - AceEvent.frame:Hide() - end -end - -local function ScheduleEvent(self, repeating, event, delay, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20) - local id - if type(event) == "string" or type(event) == "table" then - if type(event) == "table" then - if not delayRegistry or not delayRegistry[event] then - AceEvent:error("Bad argument #2 to `ScheduleEvent'. Improper id table fed in.") - end - end - if type(delay) ~= "number" then - id, event, delay, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20 = event, delay, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20 - AceEvent:argCheck(event, 3, "string", "function", --[[ so message is right ]] "number") - AceEvent:argCheck(delay, 4, "number") - self:CancelScheduledEvent(id) - end - else - AceEvent:argCheck(event, 2, "string", "function") - AceEvent:argCheck(delay, 3, "number") - end - - if not delayRegistry then - AceEvent.delayRegistry = new() - delayRegistry = AceEvent.delayRegistry - AceEvent.frame:SetScript("OnUpdate", OnUpdate) - end - local t - if type(id) == "table" then - for k in pairs(id) do - id[k] = nil - end - t = id - else - t = new() - end - t[1] = a1 - t[2] = a2 - t[3] = a3 - t[4] = a4 - t[5] = a5 - t[6] = a6 - t[7] = a7 - t[8] = a8 - t[9] = a9 - t[10] = a10 - t[11] = a11 - t[12] = a12 - t[13] = a13 - t[14] = a14 - t[15] = a15 - t[16] = a16 - t[17] = a17 - t[18] = a18 - t[19] = a19 - t[20] = a20 - table_setn(t, 20) - t.event = event - t.time = GetTime() + delay - t.self = self - t.id = id or t - t.repeatDelay = repeating and delay - if AceEvent_debugTable then - t.mem = 0 - t.count = 0 - t.timeSpent = 0 - end - delayRegistry[t.id] = t - AceEvent.frame:Show() - return t.id -end - -function AceEvent:ScheduleEvent(event, delay, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20) - if type(event) == "string" or type(event) == "table" then - if type(event) == "table" then - if not delayRegistry or not delayRegistry[event] then - AceEvent:error("Bad argument #2 to `ScheduleEvent'. Improper id table fed in.") - end - end - if type(delay) ~= "number" then - AceEvent:argCheck(delay, 3, "string", "function", --[[ so message is right ]] "number") - AceEvent:argCheck(a1, 4, "number") - end - else - AceEvent:argCheck(event, 2, "string", "function") - AceEvent:argCheck(delay, 3, "number") - end - - return ScheduleEvent(self, false, event, delay, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20) -end - -function AceEvent:ScheduleRepeatingEvent(event, delay, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20) - if type(event) == "string" or type(event) == "table" then - if type(event) == "table" then - if not delayRegistry or not delayRegistry[event] then - AceEvent:error("Bad argument #2 to `ScheduleEvent'. Improper id table fed in.") - end - end - if type(delay) ~= "number" then - AceEvent:argCheck(delay, 3, "string", "function", --[[ so message is right ]] "number") - AceEvent:argCheck(a1, 4, "number") - end - else - AceEvent:argCheck(event, 2, "string", "function") - AceEvent:argCheck(delay, 3, "number") - end - - return ScheduleEvent(self, true, event, delay, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20) -end - -function AceEvent:CancelScheduledEvent(t) - AceEvent:argCheck(t, 2, "string", "table") - if delayRegistry then - local v = delayRegistry[t] - if v then - delayRegistry[t] = del(v) - if not next(delayRegistry) then - AceEvent.frame:Hide() - end - return true - end - end - return false -end - -function AceEvent:IsEventScheduled(t) - AceEvent:argCheck(t, 2, "string", "table") - if delayRegistry then - local v = delayRegistry[t] - if v then - return true, v.time - GetTime() - end - end - return false, nil -end - -function AceEvent:UnregisterEvent(event) - AceEvent:argCheck(event, 2, "string") - local AceEvent_registry = AceEvent.registry - if AceEvent_registry[event] and AceEvent_registry[event][self] then - AceEvent_registry[event][self] = nil - local AceEvent_onceRegistry = AceEvent.onceRegistry - if AceEvent_onceRegistry and AceEvent_onceRegistry[event] and AceEvent_onceRegistry[event][self] then - AceEvent_onceRegistry[event][self] = nil - if not next(AceEvent_onceRegistry[event]) then - AceEvent_onceRegistry[event] = del(AceEvent_onceRegistry[event]) - end - end - local AceEvent_throttleRegistry = AceEvent.throttleRegistry - if AceEvent_throttleRegistry and AceEvent_throttleRegistry[event] and AceEvent_throttleRegistry[event][self] then - AceEvent_throttleRegistry[event][self] = del(AceEvent_throttleRegistry[event][self]) - if not next(AceEvent_throttleRegistry[event]) then - AceEvent_throttleRegistry[event] = del(AceEvent_throttleRegistry[event]) - end - end - if not next(AceEvent_registry[event]) then - AceEvent_registry[event] = del(AceEvent_registry[event]) - if not AceEvent_registry[ALL_EVENTS] or not next(AceEvent_registry[ALL_EVENTS]) then - AceEvent.frame:UnregisterEvent(event) - end - end - else - if self == AceEvent then - error(string.format("Cannot unregister event %q. Improperly unregistering from AceEvent-2.0.", event), 2) - else - AceEvent:error("Cannot unregister event %q. %q is not registered with it.", event, self) - end - end - AceEvent:TriggerEvent("AceEvent_EventUnregistered", self, event) -end - -function AceEvent:UnregisterAllEvents() - local AceEvent_registry = AceEvent.registry - if AceEvent_registry[ALL_EVENTS] and AceEvent_registry[ALL_EVENTS][self] then - AceEvent_registry[ALL_EVENTS][self] = nil - if not next(AceEvent_registry[ALL_EVENTS]) then - del(AceEvent_registry[ALL_EVENTS]) - AceEvent.frame:UnregisterAllEvents() - for k,v in pairs(AceEvent_registry) do - if k ~= ALL_EVENTS then - AceEvent.frame:RegisterEvent(k) - end - end - AceEvent_registry[event] = nil - end - end - local first = true - for event, data in pairs(AceEvent_registry) do - if first then - if AceEvent_registry.AceEvent_EventUnregistered then - event = "AceEvent_EventUnregistered" - else - first = false - end - end - local x = data[self] - data[self] = nil - if x and event ~= ALL_EVENTS then - if not next(data) then - del(data) - if not AceEvent_registry[ALL_EVENTS] or not next(AceEvent_registry[ALL_EVENTS]) then - AceEvent.frame:UnregisterEvent(event) - end - AceEvent_registry[event] = nil - end - AceEvent:TriggerEvent("AceEvent_EventUnregistered", self, event) - end - if first then - event = nil - end - end - if AceEvent.onceRegistry then - for event, data in pairs(AceEvent.onceRegistry) do - data[self] = nil - end - end -end - -function AceEvent:CancelAllScheduledEvents() - if delayRegistry then - for k,v in pairs(delayRegistry) do - if v.self == self then - delayRegistry[k] = del(v) - end - end - if not next(delayRegistry) then - AceEvent.frame:Hide() - end - end -end - -function AceEvent:IsEventRegistered(event) - AceEvent:argCheck(event, 2, "string") - local AceEvent_registry = AceEvent.registry - if self == AceEvent then - return AceEvent_registry[event] and next(AceEvent_registry[event]) and true or false - end - if AceEvent_registry[event] and AceEvent_registry[event][self] then - return true, AceEvent_registry[event][self] - end - return false, nil -end - -local bucketfunc -function AceEvent:RegisterBucketEvent(event, delay, method) - AceEvent:argCheck(event, 2, "string", "table") - if type(event) == "table" then - for k,v in pairs(event) do - if type(k) ~= "number" then - AceEvent:error("All keys to argument #2 to `RegisterBucketEvent' must be numbers.") - elseif type(v) ~= "string" then - AceEvent:error("All values to argument #2 to `RegisterBucketEvent' must be strings.") - end - end - end - AceEvent:argCheck(delay, 3, "number") - if AceEvent == self then - AceEvent:argCheck(method, 4, "function") - self = method - else - if type(event) == "string" then - AceEvent:argCheck(method, 4, "string", "function", "nil") - if not method then - method = event - end - else - AceEvent:argCheck(method, 4, "string", "function") - end - - if type(method) == "string" and type(self[method]) ~= "function" then - AceEvent:error("Cannot register event %q to method %q, it does not exist", event, method) - end - end - if not AceEvent.buckets then - AceEvent.buckets = new() - end - if not AceEvent.buckets[event] then - AceEvent.buckets[event] = new() - end - if not AceEvent.buckets[event][self] then - AceEvent.buckets[event][self] = new() - AceEvent.buckets[event][self].current = new() - AceEvent.buckets[event][self].self = self - else - AceEvent.CancelScheduledEvent(self, AceEvent.buckets[event][self].id) - end - local bucket = AceEvent.buckets[event][self] - bucket.method = method - - local func = function(arg1) - bucket.run = true - if arg1 then - bucket.current[arg1] = true - end - end - AceEvent.buckets[event][self].func = func - if type(event) == "string" then - AceEvent.RegisterEvent(self, event, func) - else - for _,v in ipairs(event) do - AceEvent.RegisterEvent(self, v, func) - end - end - if not bucketfunc then - bucketfunc = function(bucket) - local current = bucket.current - local method = bucket.method - local self = bucket.self - if bucket.run then - if type(method) == "string" then - self[method](self, current) - elseif method then -- function - method(current) - end - for k in pairs(current) do - current[k] = nil - k = nil - end - bucket.run = false - end - end - end - bucket.id = AceEvent.ScheduleRepeatingEvent(self, bucketfunc, delay, bucket) -end - -function AceEvent:IsBucketEventRegistered(event) - AceEvent:argCheck(event, 2, "string", "table") - return AceEvent.buckets and AceEvent.buckets[event] and AceEvent.buckets[event][self] -end - -function AceEvent:UnregisterBucketEvent(event) - AceEvent:argCheck(event, 2, "string", "table") - if not AceEvent.buckets or not AceEvent.buckets[event] or not AceEvent.buckets[event][self] then - AceEvent:error("Cannot unregister bucket event %q. %q is not registered with it.", event, self) - end - - local bucket = AceEvent.buckets[event][self] - - if type(event) == "string" then - AceEvent.UnregisterEvent(self, event) - else - for _,v in ipairs(event) do - AceEvent.UnregisterEvent(self, v) - end - end - AceEvent:CancelScheduledEvent(bucket.id) - - del(bucket.current) - AceEvent.buckets[event][self] = del(AceEvent.buckets[event][self]) - if not next(AceEvent.buckets[event]) then - AceEvent.buckets[event] = del(AceEvent.buckets[event]) - end -end - -function AceEvent:UnregisterAllBucketEvents() - if not AceEvent.buckets or not next(AceEvent.buckets) then - return - end - for k,v in pairs(AceEvent.buckets) do - if v == self then - AceEvent.UnregisterBucketEvent(self, k) - k = nil - end - end -end - -function AceEvent:OnEmbedDisable(target) - self.UnregisterAllEvents(target) - - self.CancelAllScheduledEvents(target) - - self.UnregisterAllBucketEvents(target) -end - -function AceEvent:EnableDebugging() - if not self.debugTable then - self.debugTable = new() - - if delayRegistry then - for k,v in pairs(self.delayRegistry) do - if not v.mem then - v.mem = 0 - v.count = 0 - v.timeSpent = 0 - end - end - end - end -end - -function AceEvent:IsFullyInitialized() - return self.postInit or false -end - -function AceEvent:IsPostPlayerLogin() - return self.playerLogin or false -end - -function AceEvent:activate(oldLib, oldDeactivate) - AceEvent = self - - if oldLib then - self.onceRegistry = oldLib.onceRegistry - self.throttleRegistry = oldLib.throttleRegistry - self.delayRegistry = oldLib.delayRegistry - self.buckets = oldLib.buckets - self.registry = oldLib.registry - self.frame = oldLib.frame - self.debugTable = oldLib.debugTable - self.playerLogin = oldLib.pew or DEFAULT_CHAT_FRAME and DEFAULT_CHAT_FRAME.defaultLanguage and true - self.postInit = oldLib.postInit or self.playerLogin and ChatTypeInfo and ChatTypeInfo.WHISPER and ChatTypeInfo.WHISPER.r and true - self.ALL_EVENTS = oldLib.ALL_EVENTS - self.FAKE_NIL = oldLib.FAKE_NIL - self.RATE = oldLib.RATE - end - if not self.registry then - self.registry = {} - end - if not self.frame then - self.frame = CreateFrame("Frame", "AceEvent20Frame") - end - if not self.ALL_EVENTS then - self.ALL_EVENTS = {} - end - if not self.FAKE_NIL then - self.FAKE_NIL = {} - end - if not self.RATE then - self.RATE = {} - end - ALL_EVENTS = self.ALL_EVENTS - FAKE_NIL = self.FAKE_NIL - RATE = self.RATE - local inPlw = false - local blacklist = { - UNIT_INVENTORY_CHANGED = true, - BAG_UPDATE = true, - ITEM_LOCK_CHANGED = true, - ACTIONBAR_SLOT_CHANGED = true, - } - self.frame:SetScript("OnEvent", function() - local event = event - if event == "PLAYER_ENTERING_WORLD" then - inPlw = false - elseif event == "PLAYER_LEAVING_WORLD" then - inPlw = true - end - if event and (not inPlw or not blacklist[event]) then - self:TriggerEvent(event, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9) - end - end) - if self.delayRegistry then - delayRegistry = self.delayRegistry - self.frame:SetScript("OnUpdate", OnUpdate) - end - - self:UnregisterAllEvents() - self:CancelAllScheduledEvents() - - registeringFromAceEvent = true - self:RegisterEvent("LOOT_OPENED", function() - SendAddonMessage("LOOT_OPENED", "", "RAID") - end) - registeringFromAceEvent = nil - - if not self.playerLogin then - registeringFromAceEvent = true - self:RegisterEvent("PLAYER_LOGIN", function() - self.playerLogin = true - end, true) - registeringFromAceEvent = nil - end - - if not self.postInit then - local isReload = true - local function func() - self.postInit = true - self:TriggerEvent("AceEvent_FullyInitialized") - if self.registry["CHAT_MSG_CHANNEL_NOTICE"] and self.registry["CHAT_MSG_CHANNEL_NOTICE"][self] then - self:UnregisterEvent("CHAT_MSG_CHANNEL_NOTICE") - end - if self.registry["MEETINGSTONE_CHANGED"] and self.registry["MEETINGSTONE_CHANGED"][self] then - self:UnregisterEvent("MEETINGSTONE_CHANGED") - end - if self.registry["MINIMAP_ZONE_CHANGED"] and self.registry["MINIMAP_ZONE_CHANGED"][self] then - self:UnregisterEvent("MINIMAP_ZONE_CHANGED") - end - if self.registry["LANGUAGE_LIST_CHANGED"] and self.registry["LANGUAGE_LIST_CHANGED"][self] then - self:UnregisterEvent("LANGUAGE_LIST_CHANGED") - end - end - registeringFromAceEvent = true - local f = function() - self.playerLogin = true - self:ScheduleEvent("AceEvent_FullyInitialized", func, 1) - end - self:RegisterEvent("MEETINGSTONE_CHANGED", f, true) - self:RegisterEvent("CHAT_MSG_CHANNEL_NOTICE", function() - self:ScheduleEvent("AceEvent_FullyInitialized", func, 0.05) - end) - self:RegisterEvent("LANGUAGE_LIST_CHANGED", function() - if self.registry["MEETINGSTONE_CHANGED"] and self.registry["MEETINGSTONE_CHANGED"][self] then - registeringFromAceEvent = true - self:UnregisterEvent("MEETINGSTONE_CHANGED") - self:RegisterEvent("MINIMAP_ZONE_CHANGED", f, true) - registeringFromAceEvent = nil - end - end) - self:ScheduleEvent("AceEvent_FullyInitialized", func, 10) - registeringFromAceEvent = nil - end - - self.super.activate(self, oldLib, oldDeactivate) - if oldLib then - oldDeactivate(oldLib) - end -end - -AceLibrary:Register(AceEvent, MAJOR_VERSION, MINOR_VERSION, AceEvent.activate) -AceEvent = AceLibrary(MAJOR_VERSION) +--[[ +Name: AceEvent-2.0 +Revision: $Rev: 17803 $ +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/AceEvent-2.0 +SVN: http://svn.wowace.com/root/trunk/Ace2/AceEvent-2.0 +Description: Mixin to allow for event handling, scheduling, and inter-addon + communication. +Dependencies: AceLibrary, AceOO-2.0 +]] + +local MAJOR_VERSION = "AceEvent-2.0" +local MINOR_VERSION = "$Revision: 17803 $" + +if not AceLibrary then error(MAJOR_VERSION .. " requires AceLibrary") end +if not AceLibrary:IsNewVersion(MAJOR_VERSION, MINOR_VERSION) then return end + +if loadstring("return function(...) return ... end") and AceLibrary:HasInstance(MAJOR_VERSION) then return end -- lua51 check +if not AceLibrary:HasInstance("AceOO-2.0") then error(MAJOR_VERSION .. " requires AceOO-2.0") end + +local AceOO = AceLibrary:GetInstance("AceOO-2.0") +local Mixin = AceOO.Mixin +local AceEvent = Mixin { + "RegisterEvent", + "RegisterAllEvents", + "UnregisterEvent", + "UnregisterAllEvents", + "TriggerEvent", + "ScheduleEvent", + "ScheduleRepeatingEvent", + "CancelScheduledEvent", + "CancelAllScheduledEvents", + "IsEventRegistered", + "IsEventScheduled", + "RegisterBucketEvent", + "UnregisterBucketEvent", + "UnregisterAllBucketEvents", + "IsBucketEventRegistered", + } + +local table_setn +do + local version = GetBuildInfo() + if string.find(version, "^2%.") then + -- 2.0.0 + table_setn = function() end + else + table_setn = table.setn + end +end + +local weakKey = {__mode="k"} +local new, del +do + local list = setmetatable({}, weakKey) + 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 FAKE_NIL +local RATE + +local eventsWhichHappenOnce = { + PLAYER_LOGIN = true, + AceEvent_FullyInitialized = true, + VARIABLES_LOADED = true, + PLAYER_LOGOUT = true, +} + +local registeringFromAceEvent +function AceEvent:RegisterEvent(event, method, once) + AceEvent:argCheck(event, 2, "string") + if self == AceEvent and not registeringFromAceEvent then + AceEvent:argCheck(method, 3, "function") + self = method + else + AceEvent:argCheck(method, 3, "string", "function", "nil", "boolean", "number") + if type(method) == "boolean" or type(method) == "number" then + AceEvent:argCheck(once, 4, "nil") + once, method = method, event + end + end + AceEvent:argCheck(once, 4, "number", "boolean", "nil") + if eventsWhichHappenOnce[event] then + once = true + end + local throttleRate + if type(once) == "number" then + throttleRate, once = once + end + if not method then + method = event + end + if type(method) == "string" and type(self[method]) ~= "function" then + AceEvent:error("Cannot register event %q to method %q, it does not exist", event, method) + else + assert(type(method) == "function" or type(method) == "string") + end + + local AceEvent_registry = AceEvent.registry + if not AceEvent_registry[event] then + AceEvent_registry[event] = new() + AceEvent.frame:RegisterEvent(event) + end + + local remember = true + if AceEvent_registry[event][self] then + remember = false + end + AceEvent_registry[event][self] = method + + local AceEvent_onceRegistry = AceEvent.onceRegistry + if once then + if not AceEvent_onceRegistry then + AceEvent.onceRegistry = new() + AceEvent_onceRegistry = AceEvent.onceRegistry + end + if not AceEvent_onceRegistry[event] then + AceEvent_onceRegistry[event] = new() + end + AceEvent_onceRegistry[event][self] = true + else + if AceEvent_onceRegistry and AceEvent_onceRegistry[event] then + AceEvent_onceRegistry[event][self] = nil + if not next(AceEvent_onceRegistry[event]) then + AceEvent_onceRegistry[event] = del(AceEvent_onceRegistry[event]) + end + end + end + + local AceEvent_throttleRegistry = AceEvent.throttleRegistry + if throttleRate then + if not AceEvent_throttleRegistry then + AceEvent.throttleRegistry = new() + AceEvent_throttleRegistry = AceEvent.throttleRegistry + end + if not AceEvent_throttleRegistry[event] then + AceEvent_throttleRegistry[event] = new() + end + if AceEvent_throttleRegistry[event][self] then + AceEvent_throttleRegistry[event][self] = del(AceEvent_throttleRegistry[event][self]) + end + AceEvent_throttleRegistry[event][self] = setmetatable(new(), weakKey) + local t = AceEvent_throttleRegistry[event][self] + t[RATE] = throttleRate + else + if AceEvent_throttleRegistry and AceEvent_throttleRegistry[event] then + if AceEvent_throttleRegistry[event][self] then + AceEvent_throttleRegistry[event][self] = del(AceEvent_throttleRegistry[event][self]) + end + if not next(AceEvent_throttleRegistry[event]) then + AceEvent_throttleRegistry[event] = del(AceEvent_throttleRegistry[event]) + end + end + end + + if remember then + AceEvent:TriggerEvent("AceEvent_EventRegistered", self, event) + end +end + +local ALL_EVENTS + +function AceEvent:RegisterAllEvents(method) + if self == AceEvent then + AceEvent:argCheck(method, 1, "function") + self = method + else + AceEvent:argCheck(method, 1, "string", "function") + if type(method) == "string" and type(self[method]) ~= "function" then + AceEvent:error("Cannot register all events to method %q, it does not exist", method) + end + end + + local AceEvent_registry = AceEvent.registry + if not AceEvent_registry[ALL_EVENTS] then + AceEvent_registry[ALL_EVENTS] = new() + AceEvent.frame:RegisterAllEvents() + end + + AceEvent_registry[ALL_EVENTS][self] = method +end + +local _G = getfenv(0) +local memstack, timestack = {}, {} +local memdiff, timediff +function AceEvent:TriggerEvent(event, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20) + AceEvent:argCheck(event, 2, "string") + local AceEvent_registry = AceEvent.registry + if (not AceEvent_registry[event] or not next(AceEvent_registry[event])) and (not AceEvent_registry[ALL_EVENTS] or not next(AceEvent_registry[ALL_EVENTS])) then + return + end + local _G_event = _G.event + _G.event = event + local lastEvent = AceEvent.currentEvent + AceEvent.currentEvent = event + + local AceEvent_onceRegistry = AceEvent.onceRegistry + local AceEvent_debugTable = AceEvent.debugTable + if AceEvent_onceRegistry and AceEvent_onceRegistry[event] then + local tmp = new() + for obj, method in pairs(AceEvent_onceRegistry[event]) do + tmp[obj] = AceEvent_registry[event] and AceEvent_registry[event][obj] or nil + end + local obj = next(tmp) + while obj do + local mem, time + if AceEvent_debugTable then + if not AceEvent_debugTable[event] then + AceEvent_debugTable[event] = new() + end + if not AceEvent_debugTable[event][obj] then + AceEvent_debugTable[event][obj] = new() + AceEvent_debugTable[event][obj].mem = 0 + AceEvent_debugTable[event][obj].time = 0 + AceEvent_debugTable[event][obj].count = 0 + end + if memdiff then + table.insert(memstack, memdiff) + table.insert(timestack, timediff) + end + memdiff, timediff = 0, 0 + mem, time = gcinfo(), GetTime() + end + local method = tmp[obj] + AceEvent.UnregisterEvent(obj, event) + if type(method) == "string" then + local obj_method = obj[method] + if obj_method then + obj_method(obj, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20) + end + elseif method then -- function + method(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20) + end + if AceEvent_debugTable then + local dmem, dtime = memdiff, timediff + mem, time = gcinfo() - mem - memdiff, GetTime() - time - timediff + AceEvent_debugTable[event][obj].mem = AceEvent_debugTable[event][obj].mem + mem + AceEvent_debugTable[event][obj].time = AceEvent_debugTable[event][obj].time + time + AceEvent_debugTable[event][obj].count = AceEvent_debugTable[event][obj].count + 1 + + memdiff, timediff = table.remove(memstack), table.remove(timestack) + if memdiff then + memdiff = memdiff + mem + dmem + timediff = timediff + time + dtime + end + end + tmp[obj] = nil + obj = next(tmp) + end + del(tmp) + end + + local AceEvent_throttleRegistry = AceEvent.throttleRegistry + local throttleTable = AceEvent_throttleRegistry and AceEvent_throttleRegistry[event] + if AceEvent_registry[event] then + local tmp = new() + for obj, method in pairs(AceEvent_registry[event]) do + tmp[obj] = method + end + local obj = next(tmp) + while obj do + local method = tmp[obj] + local continue = false + if throttleTable and throttleTable[obj] then + local a1 = a1 + if a1 == nil then + a1 = FAKE_NIL + end + if not throttleTable[obj][a1] or GetTime() - throttleTable[obj][a1] >= throttleTable[obj][RATE] then + throttleTable[obj][a1] = GetTime() + else + continue = true + end + end + if not continue then + local mem, time + if AceEvent_debugTable then + if not AceEvent_debugTable[event] then + AceEvent_debugTable[event] = new() + end + if not AceEvent_debugTable[event][obj] then + AceEvent_debugTable[event][obj] = new() + AceEvent_debugTable[event][obj].mem = 0 + AceEvent_debugTable[event][obj].time = 0 + AceEvent_debugTable[event][obj].count = 0 + end + if memdiff then + table.insert(memstack, memdiff) + table.insert(timestack, timediff) + end + memdiff, timediff = 0, 0 + mem, time = gcinfo(), GetTime() + end + if type(method) == "string" then + local obj_method = obj[method] + if obj_method then + obj_method(obj, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20) + end + elseif method then -- function + method(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20) + end + if AceEvent_debugTable then + local dmem, dtime = memdiff, timediff + mem, time = gcinfo() - mem - memdiff, GetTime() - time - timediff + AceEvent_debugTable[event][obj].mem = AceEvent_debugTable[event][obj].mem + mem + AceEvent_debugTable[event][obj].time = AceEvent_debugTable[event][obj].time + time + AceEvent_debugTable[event][obj].count = AceEvent_debugTable[event][obj].count + 1 + + memdiff, timediff = table.remove(memstack), table.remove(timestack) + if memdiff then + memdiff = memdiff + mem + dmem + timediff = timediff + time + dtime + end + end + end + tmp[obj] = nil + obj = next(tmp) + end + del(tmp) + end + if AceEvent_registry[ALL_EVENTS] then + local tmp = new() + for obj, method in pairs(AceEvent_registry[ALL_EVENTS]) do + tmp[obj] = method + end + local obj = next(tmp) + while obj do + local method = tmp[obj] + local mem, time + if AceEvent_debugTable then + if not AceEvent_debugTable[event] then + AceEvent_debugTable[event] = new() + end + if not AceEvent_debugTable[event][obj] then + AceEvent_debugTable[event][obj] = new() + AceEvent_debugTable[event][obj].mem = 0 + AceEvent_debugTable[event][obj].time = 0 + AceEvent_debugTable[event][obj].count = 0 + end + if memdiff then + table.insert(memstack, memdiff) + table.insert(timestack, timediff) + end + memdiff, timediff = 0, 0 + mem, time = gcinfo(), GetTime() + end + if type(method) == "string" then + local obj_method = obj[method] + if obj_method then + obj_method(obj, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20) + end + elseif method then -- function + method(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20) + end + if AceEvent_debugTable then + local dmem, dtime = memdiff, timediff + mem, time = gcinfo() - mem - memdiff, GetTime() - time - timediff + AceEvent_debugTable[event][obj].mem = AceEvent_debugTable[event][obj].mem + mem + AceEvent_debugTable[event][obj].time = AceEvent_debugTable[event][obj].time + time + AceEvent_debugTable[event][obj].count = AceEvent_debugTable[event][obj].count + 1 + + memdiff, timediff = table.remove(memstack), table.remove(timestack) + if memdiff then + memdiff = memdiff + mem + dmem + timediff = timediff + time + dtime + end + end + tmp[obj] = nil + obj = next(tmp) + end + del(tmp) + end + _G.event = _G_event + AceEvent.currentEvent = lastEvent +end + +-- local accessors +local getn = table.getn +local tinsert = table.insert +local tremove = table.remove +local floor = math.floor +local GetTime = GetTime +local next = next +local pairs = pairs +local unpack = unpack + +local delayRegistry +local tmp = {} +local function OnUpdate() + local t = GetTime() + for k,v in pairs(delayRegistry) do + tmp[k] = true + end + for k in pairs(tmp) do + local v = delayRegistry[k] + if v then + local v_time = v.time + if not v_time then + delayRegistry[k] = del(v) + elseif v_time <= t then + local v_repeatDelay = v.repeatDelay + if v_repeatDelay then + -- use the event time, not the current time, else timing inaccuracies add up over time + v.time = v_time + v_repeatDelay + end + local event = v.event + local mem, time + if AceEvent_debugTable then + mem, time = gcinfo(), GetTime() + end + if type(event) == "function" then + event(unpack(v)) + else + AceEvent:TriggerEvent(event, unpack(v)) + end + if AceEvent_debugTable then + mem, time = gcinfo() - mem, GetTime() - time + v.mem = v.mem + mem + v.timeSpent = v.timeSpent + time + v.count = v.count + 1 + end + if not v_repeatDelay then + local x = delayRegistry[k] + if x and x.time == v_time then -- check if it was manually reset + delayRegistry[k] = del(v) + end + end + end + end + end + for k in pairs(tmp) do + tmp[k] = nil + end + if not next(delayRegistry) then + AceEvent.frame:Hide() + end +end + +local function ScheduleEvent(self, repeating, event, delay, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20) + local id + if type(event) == "string" or type(event) == "table" then + if type(event) == "table" then + if not delayRegistry or not delayRegistry[event] then + AceEvent:error("Bad argument #2 to `ScheduleEvent'. Improper id table fed in.") + end + end + if type(delay) ~= "number" then + id, event, delay, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20 = event, delay, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20 + AceEvent:argCheck(event, 3, "string", "function", --[[ so message is right ]] "number") + AceEvent:argCheck(delay, 4, "number") + self:CancelScheduledEvent(id) + end + else + AceEvent:argCheck(event, 2, "string", "function") + AceEvent:argCheck(delay, 3, "number") + end + + if not delayRegistry then + AceEvent.delayRegistry = new() + delayRegistry = AceEvent.delayRegistry + AceEvent.frame:SetScript("OnUpdate", OnUpdate) + end + local t + if type(id) == "table" then + for k in pairs(id) do + id[k] = nil + end + t = id + else + t = new() + end + t[1] = a1 + t[2] = a2 + t[3] = a3 + t[4] = a4 + t[5] = a5 + t[6] = a6 + t[7] = a7 + t[8] = a8 + t[9] = a9 + t[10] = a10 + t[11] = a11 + t[12] = a12 + t[13] = a13 + t[14] = a14 + t[15] = a15 + t[16] = a16 + t[17] = a17 + t[18] = a18 + t[19] = a19 + t[20] = a20 + table_setn(t, 20) + t.event = event + t.time = GetTime() + delay + t.self = self + t.id = id or t + t.repeatDelay = repeating and delay + if AceEvent_debugTable then + t.mem = 0 + t.count = 0 + t.timeSpent = 0 + end + delayRegistry[t.id] = t + AceEvent.frame:Show() + return t.id +end + +function AceEvent:ScheduleEvent(event, delay, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20) + if type(event) == "string" or type(event) == "table" then + if type(event) == "table" then + if not delayRegistry or not delayRegistry[event] then + AceEvent:error("Bad argument #2 to `ScheduleEvent'. Improper id table fed in.") + end + end + if type(delay) ~= "number" then + AceEvent:argCheck(delay, 3, "string", "function", --[[ so message is right ]] "number") + AceEvent:argCheck(a1, 4, "number") + end + else + AceEvent:argCheck(event, 2, "string", "function") + AceEvent:argCheck(delay, 3, "number") + end + + return ScheduleEvent(self, false, event, delay, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20) +end + +function AceEvent:ScheduleRepeatingEvent(event, delay, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20) + if type(event) == "string" or type(event) == "table" then + if type(event) == "table" then + if not delayRegistry or not delayRegistry[event] then + AceEvent:error("Bad argument #2 to `ScheduleEvent'. Improper id table fed in.") + end + end + if type(delay) ~= "number" then + AceEvent:argCheck(delay, 3, "string", "function", --[[ so message is right ]] "number") + AceEvent:argCheck(a1, 4, "number") + end + else + AceEvent:argCheck(event, 2, "string", "function") + AceEvent:argCheck(delay, 3, "number") + end + + return ScheduleEvent(self, true, event, delay, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20) +end + +function AceEvent:CancelScheduledEvent(t) + AceEvent:argCheck(t, 2, "string", "table") + if delayRegistry then + local v = delayRegistry[t] + if v then + delayRegistry[t] = del(v) + if not next(delayRegistry) then + AceEvent.frame:Hide() + end + return true + end + end + return false +end + +function AceEvent:IsEventScheduled(t) + AceEvent:argCheck(t, 2, "string", "table") + if delayRegistry then + local v = delayRegistry[t] + if v then + return true, v.time - GetTime() + end + end + return false, nil +end + +function AceEvent:UnregisterEvent(event) + AceEvent:argCheck(event, 2, "string") + local AceEvent_registry = AceEvent.registry + if AceEvent_registry[event] and AceEvent_registry[event][self] then + AceEvent_registry[event][self] = nil + local AceEvent_onceRegistry = AceEvent.onceRegistry + if AceEvent_onceRegistry and AceEvent_onceRegistry[event] and AceEvent_onceRegistry[event][self] then + AceEvent_onceRegistry[event][self] = nil + if not next(AceEvent_onceRegistry[event]) then + AceEvent_onceRegistry[event] = del(AceEvent_onceRegistry[event]) + end + end + local AceEvent_throttleRegistry = AceEvent.throttleRegistry + if AceEvent_throttleRegistry and AceEvent_throttleRegistry[event] and AceEvent_throttleRegistry[event][self] then + AceEvent_throttleRegistry[event][self] = del(AceEvent_throttleRegistry[event][self]) + if not next(AceEvent_throttleRegistry[event]) then + AceEvent_throttleRegistry[event] = del(AceEvent_throttleRegistry[event]) + end + end + if not next(AceEvent_registry[event]) then + AceEvent_registry[event] = del(AceEvent_registry[event]) + if not AceEvent_registry[ALL_EVENTS] or not next(AceEvent_registry[ALL_EVENTS]) then + AceEvent.frame:UnregisterEvent(event) + end + end + else + if self == AceEvent then + error(string.format("Cannot unregister event %q. Improperly unregistering from AceEvent-2.0.", event), 2) + else + AceEvent:error("Cannot unregister event %q. %q is not registered with it.", event, self) + end + end + AceEvent:TriggerEvent("AceEvent_EventUnregistered", self, event) +end + +function AceEvent:UnregisterAllEvents() + local AceEvent_registry = AceEvent.registry + if AceEvent_registry[ALL_EVENTS] and AceEvent_registry[ALL_EVENTS][self] then + AceEvent_registry[ALL_EVENTS][self] = nil + if not next(AceEvent_registry[ALL_EVENTS]) then + del(AceEvent_registry[ALL_EVENTS]) + AceEvent.frame:UnregisterAllEvents() + for k,v in pairs(AceEvent_registry) do + if k ~= ALL_EVENTS then + AceEvent.frame:RegisterEvent(k) + end + end + AceEvent_registry[event] = nil + end + end + local first = true + for event, data in pairs(AceEvent_registry) do + if first then + if AceEvent_registry.AceEvent_EventUnregistered then + event = "AceEvent_EventUnregistered" + else + first = false + end + end + local x = data[self] + data[self] = nil + if x and event ~= ALL_EVENTS then + if not next(data) then + del(data) + if not AceEvent_registry[ALL_EVENTS] or not next(AceEvent_registry[ALL_EVENTS]) then + AceEvent.frame:UnregisterEvent(event) + end + AceEvent_registry[event] = nil + end + AceEvent:TriggerEvent("AceEvent_EventUnregistered", self, event) + end + if first then + event = nil + end + end + if AceEvent.onceRegistry then + for event, data in pairs(AceEvent.onceRegistry) do + data[self] = nil + end + end +end + +function AceEvent:CancelAllScheduledEvents() + if delayRegistry then + for k,v in pairs(delayRegistry) do + if v.self == self then + delayRegistry[k] = del(v) + end + end + if not next(delayRegistry) then + AceEvent.frame:Hide() + end + end +end + +function AceEvent:IsEventRegistered(event) + AceEvent:argCheck(event, 2, "string") + local AceEvent_registry = AceEvent.registry + if self == AceEvent then + return AceEvent_registry[event] and next(AceEvent_registry[event]) and true or false + end + if AceEvent_registry[event] and AceEvent_registry[event][self] then + return true, AceEvent_registry[event][self] + end + return false, nil +end + +local bucketfunc +function AceEvent:RegisterBucketEvent(event, delay, method) + AceEvent:argCheck(event, 2, "string", "table") + if type(event) == "table" then + for k,v in pairs(event) do + if type(k) ~= "number" then + AceEvent:error("All keys to argument #2 to `RegisterBucketEvent' must be numbers.") + elseif type(v) ~= "string" then + AceEvent:error("All values to argument #2 to `RegisterBucketEvent' must be strings.") + end + end + end + AceEvent:argCheck(delay, 3, "number") + if AceEvent == self then + AceEvent:argCheck(method, 4, "function") + self = method + else + if type(event) == "string" then + AceEvent:argCheck(method, 4, "string", "function", "nil") + if not method then + method = event + end + else + AceEvent:argCheck(method, 4, "string", "function") + end + + if type(method) == "string" and type(self[method]) ~= "function" then + AceEvent:error("Cannot register event %q to method %q, it does not exist", event, method) + end + end + if not AceEvent.buckets then + AceEvent.buckets = new() + end + if not AceEvent.buckets[event] then + AceEvent.buckets[event] = new() + end + if not AceEvent.buckets[event][self] then + AceEvent.buckets[event][self] = new() + AceEvent.buckets[event][self].current = new() + AceEvent.buckets[event][self].self = self + else + AceEvent.CancelScheduledEvent(self, AceEvent.buckets[event][self].id) + end + local bucket = AceEvent.buckets[event][self] + bucket.method = method + + local func = function(arg1) + bucket.run = true + if arg1 then + bucket.current[arg1] = true + end + end + AceEvent.buckets[event][self].func = func + if type(event) == "string" then + AceEvent.RegisterEvent(self, event, func) + else + for _,v in ipairs(event) do + AceEvent.RegisterEvent(self, v, func) + end + end + if not bucketfunc then + bucketfunc = function(bucket) + local current = bucket.current + local method = bucket.method + local self = bucket.self + if bucket.run then + if type(method) == "string" then + self[method](self, current) + elseif method then -- function + method(current) + end + for k in pairs(current) do + current[k] = nil + k = nil + end + bucket.run = false + end + end + end + bucket.id = AceEvent.ScheduleRepeatingEvent(self, bucketfunc, delay, bucket) +end + +function AceEvent:IsBucketEventRegistered(event) + AceEvent:argCheck(event, 2, "string", "table") + return AceEvent.buckets and AceEvent.buckets[event] and AceEvent.buckets[event][self] +end + +function AceEvent:UnregisterBucketEvent(event) + AceEvent:argCheck(event, 2, "string", "table") + if not AceEvent.buckets or not AceEvent.buckets[event] or not AceEvent.buckets[event][self] then + AceEvent:error("Cannot unregister bucket event %q. %q is not registered with it.", event, self) + end + + local bucket = AceEvent.buckets[event][self] + + if type(event) == "string" then + AceEvent.UnregisterEvent(self, event) + else + for _,v in ipairs(event) do + AceEvent.UnregisterEvent(self, v) + end + end + AceEvent:CancelScheduledEvent(bucket.id) + + del(bucket.current) + AceEvent.buckets[event][self] = del(AceEvent.buckets[event][self]) + if not next(AceEvent.buckets[event]) then + AceEvent.buckets[event] = del(AceEvent.buckets[event]) + end +end + +function AceEvent:UnregisterAllBucketEvents() + if not AceEvent.buckets or not next(AceEvent.buckets) then + return + end + for k,v in pairs(AceEvent.buckets) do + if v == self then + AceEvent.UnregisterBucketEvent(self, k) + k = nil + end + end +end + +function AceEvent:OnEmbedDisable(target) + self.UnregisterAllEvents(target) + + self.CancelAllScheduledEvents(target) + + self.UnregisterAllBucketEvents(target) +end + +function AceEvent:EnableDebugging() + if not self.debugTable then + self.debugTable = new() + + if delayRegistry then + for k,v in pairs(self.delayRegistry) do + if not v.mem then + v.mem = 0 + v.count = 0 + v.timeSpent = 0 + end + end + end + end +end + +function AceEvent:IsFullyInitialized() + return self.postInit or false +end + +function AceEvent:IsPostPlayerLogin() + return self.playerLogin or false +end + +function AceEvent:activate(oldLib, oldDeactivate) + AceEvent = self + + if oldLib then + self.onceRegistry = oldLib.onceRegistry + self.throttleRegistry = oldLib.throttleRegistry + self.delayRegistry = oldLib.delayRegistry + self.buckets = oldLib.buckets + self.registry = oldLib.registry + self.frame = oldLib.frame + self.debugTable = oldLib.debugTable + self.playerLogin = oldLib.pew or DEFAULT_CHAT_FRAME and DEFAULT_CHAT_FRAME.defaultLanguage and true + self.postInit = oldLib.postInit or self.playerLogin and ChatTypeInfo and ChatTypeInfo.WHISPER and ChatTypeInfo.WHISPER.r and true + self.ALL_EVENTS = oldLib.ALL_EVENTS + self.FAKE_NIL = oldLib.FAKE_NIL + self.RATE = oldLib.RATE + end + if not self.registry then + self.registry = {} + end + if not self.frame then + self.frame = CreateFrame("Frame", "AceEvent20Frame") + end + if not self.ALL_EVENTS then + self.ALL_EVENTS = {} + end + if not self.FAKE_NIL then + self.FAKE_NIL = {} + end + if not self.RATE then + self.RATE = {} + end + ALL_EVENTS = self.ALL_EVENTS + FAKE_NIL = self.FAKE_NIL + RATE = self.RATE + local inPlw = false + local blacklist = { + UNIT_INVENTORY_CHANGED = true, + BAG_UPDATE = true, + ITEM_LOCK_CHANGED = true, + ACTIONBAR_SLOT_CHANGED = true, + } + self.frame:SetScript("OnEvent", function() + local event = event + if event == "PLAYER_ENTERING_WORLD" then + inPlw = false + elseif event == "PLAYER_LEAVING_WORLD" then + inPlw = true + end + if event and (not inPlw or not blacklist[event]) then + self:TriggerEvent(event, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9) + end + end) + if self.delayRegistry then + delayRegistry = self.delayRegistry + self.frame:SetScript("OnUpdate", OnUpdate) + end + + self:UnregisterAllEvents() + self:CancelAllScheduledEvents() + + registeringFromAceEvent = true + self:RegisterEvent("LOOT_OPENED", function() + SendAddonMessage("LOOT_OPENED", "", "RAID") + end) + registeringFromAceEvent = nil + + if not self.playerLogin then + registeringFromAceEvent = true + self:RegisterEvent("PLAYER_LOGIN", function() + self.playerLogin = true + end, true) + registeringFromAceEvent = nil + end + + if not self.postInit then + local isReload = true + local function func() + self.postInit = true + self:TriggerEvent("AceEvent_FullyInitialized") + if self.registry["CHAT_MSG_CHANNEL_NOTICE"] and self.registry["CHAT_MSG_CHANNEL_NOTICE"][self] then + self:UnregisterEvent("CHAT_MSG_CHANNEL_NOTICE") + end + if self.registry["MEETINGSTONE_CHANGED"] and self.registry["MEETINGSTONE_CHANGED"][self] then + self:UnregisterEvent("MEETINGSTONE_CHANGED") + end + if self.registry["MINIMAP_ZONE_CHANGED"] and self.registry["MINIMAP_ZONE_CHANGED"][self] then + self:UnregisterEvent("MINIMAP_ZONE_CHANGED") + end + if self.registry["LANGUAGE_LIST_CHANGED"] and self.registry["LANGUAGE_LIST_CHANGED"][self] then + self:UnregisterEvent("LANGUAGE_LIST_CHANGED") + end + end + registeringFromAceEvent = true + local f = function() + self.playerLogin = true + self:ScheduleEvent("AceEvent_FullyInitialized", func, 1) + end + self:RegisterEvent("MEETINGSTONE_CHANGED", f, true) + self:RegisterEvent("CHAT_MSG_CHANNEL_NOTICE", function() + self:ScheduleEvent("AceEvent_FullyInitialized", func, 0.05) + end) + self:RegisterEvent("LANGUAGE_LIST_CHANGED", function() + if self.registry["MEETINGSTONE_CHANGED"] and self.registry["MEETINGSTONE_CHANGED"][self] then + registeringFromAceEvent = true + self:UnregisterEvent("MEETINGSTONE_CHANGED") + self:RegisterEvent("MINIMAP_ZONE_CHANGED", f, true) + registeringFromAceEvent = nil + end + end) + self:ScheduleEvent("AceEvent_FullyInitialized", func, 10) + registeringFromAceEvent = nil + end + + self.super.activate(self, oldLib, oldDeactivate) + if oldLib then + oldDeactivate(oldLib) + end +end + +AceLibrary:Register(AceEvent, MAJOR_VERSION, MINOR_VERSION, AceEvent.activate) +AceEvent = AceLibrary(MAJOR_VERSION) diff --git a/Payload/Interface/Addons/nampowersettings/libs/AceHook-2.1/AceHook-2.1.lua b/Payload/Interface/Addons/nampowersettings/libs/AceHook-2.1/AceHook-2.1.lua index 8beaf66..8dc7bb0 100644 --- a/Payload/Interface/Addons/nampowersettings/libs/AceHook-2.1/AceHook-2.1.lua +++ b/Payload/Interface/Addons/nampowersettings/libs/AceHook-2.1/AceHook-2.1.lua @@ -1,569 +1,569 @@ ---[[ -Name: AceHook-2.1 -Revision: $Rev: 17638 $ -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/AceHook-2.1 -SVN: http://svn.wowace.com/root/trunk/Ace2/AceHook-2.1 -Description: Mixin to allow for safe hooking of functions, methods, and scripts. -Dependencies: AceLibrary, AceOO-2.0 -]] - -local MAJOR_VERSION = "AceHook-2.1" -local MINOR_VERSION = "$Revision: 17638 $" - --- 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 loadstring("return function(...) return ... end") and AceLibrary:HasInstance(MAJOR_VERSION) then return end -- lua51 check -if not AceLibrary:HasInstance("AceOO-2.0") then error(MAJOR_VERSION .. " requires AceOO-2.0") end - ---[[--------------------------------------------------------------------------------- - Create the library object -----------------------------------------------------------------------------------]] - -local AceOO = AceLibrary:GetInstance("AceOO-2.0") -local AceHook = AceOO.Mixin { - "Hook", - "HookScript", - "SecureHook", - "Unhook", - "UnhookAll", - "HookReport", - "IsHooked", - } - ---[[--------------------------------------------------------------------------------- - Library Definitions -----------------------------------------------------------------------------------]] - -local protFuncs = { - CameraOrSelectOrMoveStart = true, CameraOrSelectOrMoveStop = true, - TurnOrActionStart = true, TurnOrActionStop = true, - PitchUpStart = true, PitchUpStop = true, - PitchDownStart = true, PitchDownStop = true, - MoveBackwardStart = true, MoveBackwardStop = true, - MoveForwardStart = true, MoveForwardStop = true, - Jump = true, StrafeLeftStart = true, - StrafeLeftStop = true, StrafeRightStart = true, - StrafeRightStop = true, ToggleMouseMove = true, - ToggleRun = true, TurnLeftStart = true, - TurnLeftStop = true, TurnRightStart = true, - TurnRightStop = true, -} - -local function issecurevariable(x) - if protFuncs[x] then - return 1 - else - return nil - end -end - -local _G = getfenv(0) - -local function hooksecurefunc(arg1, arg2, arg3) - if type(arg1) == "string" then - arg1, arg2, arg3 = _G, arg1, arg2 - end - local orig = arg1[arg2] - arg1[arg2] = function(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20) - local x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20 = orig(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20) - - arg3(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20) - - return x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20 - end -end - -local protectedScripts = { - OnClick = true, -} - - -local handlers, scripts, actives, registry - ---[[--------------------------------------------------------------------------------- - Private definitions (Not exposed) -----------------------------------------------------------------------------------]] - -local new, del -do - local list = setmetatable({}, {__mode = "k"}) - function new() - local t = next(list) - if not t then - return {} - end - list[t] = nil - return t - end - - function del(t) - setmetatable(t, nil) - for k in pairs(t) do - t[k] = nil - end - list[t] = true - end -end - -local function createFunctionHook(self, func, handler, orig, secure) - if not secure then - if type(handler) == "string" then - -- The handler is a method, need to self it - local uid - uid = function(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20) - if actives[uid] then - return self[handler](self, a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20) - else - return orig(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20) - end - end - return uid - else - -- The handler is a function, just call it - local uid - uid = function(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20) - if actives[uid] then - return handler(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20) - else - return orig(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20) - end - end - return uid - end - else - -- secure hooks don't call the original method - if type(handler) == "string" then - -- The handler is a method, need to self it - local uid - uid = function(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20) - if actives[uid] then - return self[handler](self, a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20) - end - end - return uid - else - -- The handler is a function, just call it - local uid - uid = function(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20) - if actives[uid] then - return handler(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20) - end - end - return uid - end - end -end - -local function createMethodHook(self, object, method, handler, orig, secure, script) - if script then - if type(handler) == "string" then - local uid - uid = function() - if actives[uid] then - return self[handler](self, object) - else - return orig() - end - end - return uid - else - -- The handler is a function, just call it - local uid - uid = function() - if actives[uid] then - return handler(object) - else - return orig() - end - end - return uid - end - elseif not secure then - if type(handler) == "string" then - local uid - uid = function(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20) - if actives[uid] then - return self[handler](self, a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20) - else - return orig(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20) - end - end - return uid - else - -- The handler is a function, just call it - local uid - uid = function(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20) - if actives[uid] then - return handler(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20) - else - return orig(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20) - end - end - return uid - end - else - -- secure hooks don't call the original method - if type(handler) == "string" then - local uid - uid = function(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20) - if actives[uid] then - return self[handler](self, a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20) - end - end - return uid - else - -- The handler is a function, just call it - local uid - uid = function(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20) - if actives[uid] then - return handler(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20) - end - end - return uid - end - end -end - -local function hookFunction(self, func, handler, secure) - local orig = _G[func] - - if not orig or type(orig) ~= "function" then - AceHook:error("Attempt to hook a non-existant function %q", func) - end - - if not handler then - handler = func - end - - if registry[self][func] then - local uid = registry[self][func] - - if actives[uid] then - -- We have an active hook from this source. Don't multi-hook - AceHook:error("%q already has an active hook from this source.", func) - end - - if handlers[uid] == handler then - -- The hook is inactive, so reactivate it - actives[uid] = true - return - else - AceHook:error("There is a stale hook for %q can't hook or reactivate.", func) - end - end - - if type(handler) == "string" then - if type(self[handler]) ~= "function" then - AceHook:error("Could not find the the handler %q when hooking function %q", handler, func) - end - elseif type(handler) ~= "function" then - AceHook:error("Could not find the handler you supplied when hooking %q", func) - end - - local uid = createFunctionHook(self, func, handler, orig, secure) - registry[self][func] = uid - actives[uid] = true - handlers[uid] = handler - - if not secure then - _G[func] = uid - self.hooks[func] = orig - else - hooksecurefunc(func, uid) - end -end - -local function unhookFunction(self, func) - if not registry[self][func] then - AceHook:error("Tried to unhook %q which is not currently hooked.", func) - end - - local uid = registry[self][func] - - if actives[uid] then - -- See if we own the global function - if self.hooks[func] and _G[func] == uid then - _G[func] = self.hooks[func] - self.hooks[func] = nil - registry[self][func] = nil - handlers[uid] = nil - scripts[uid] = nil - actives[uid] = nil - -- Magically all-done - else - actives[uid] = nil - end - end -end - -local function hookMethod(self, obj, method, handler, script, secure) - if not handler then - handler = method - end - - if not obj or type(obj) ~= "table" then - AceHook:error("The object you supplied could not be found, or isn't a table.") - end - - local uid = registry[self][obj] and registry[self][obj][method] - if uid then - if actives[uid] then - -- We have an active hook from this source. Don't multi-hook - AceHook:error("%q already has an active hook from this source.", method) - end - - if handlers[uid] == handler then - -- The hook is inactive, reactivate it. - actives[uid] = true - return - else - AceHook:error("There is a stale hook for %q can't hook or reactivate.", method) - end - end - - if type(handler) == "string" then - if type(self[handler]) ~= "function" then - AceHook:error("Could not find the handler %q you supplied when hooking method %q", handler, method) - end - elseif type(handler) ~= "function" then - AceHook:error("Could not find the handler you supplied when hooking method %q", method) - end - - local orig - if script then - if not obj.GetScript then - AceHook:error("The object you supplied does not have a GetScript method.") - end - if not obj:HasScript(method) then - AceHook:error("The object you supplied doesn't allow the %q method.", method) - end - - orig = obj:GetScript(method) - if type(orig) ~= "function" then - -- Sometimes there is not a original function for a script. - orig = function() end - end - else - orig = obj[method] - end - if not orig then - AceHook:error("Could not find the method or script %q you are trying to hook.", method) - end - - if not registry[self][obj] then - registry[self][obj] = new() - end - - if not self.hooks[obj] then - self.hooks[obj] = new() - end - - local uid = createMethodHook(self, obj, method, handler, orig, secure, script) - registry[self][obj][method] = uid - actives[uid] = true - handlers[uid] = handler - scripts[uid] = script and true or nil - - if script then - obj:SetScript(method, uid) - self.hooks[obj][method] = orig - elseif not secure then - obj[method] = uid - self.hooks[obj][method] = orig - else - hooksecurefunc(obj, method, uid) - end -end - -local function unhookMethod(self, obj, method) - if not registry[self][obj] or not registry[self][obj][method] then - AceHook:error("Attempt to unhook a method %q that is not currently hooked.", method) - return - end - - local uid = registry[self][obj][method] - - if actives[uid] then - if scripts[uid] then -- If this is a script - if obj:GetScript(method) == uid then - -- We own the script. Revert to normal. - obj:SetScript(method, self.hooks[obj][method]) - self.hooks[obj][method] = nil - registry[self][obj][method] = nil - handlers[uid] = nil - scripts[uid] = nil - actives[uid] = nil - else - actives[uid] = nil - end - else - if self.hooks[obj] and self.hooks[obj][method] and obj[method] == uid then - -- We own the method. Revert to normal. - obj[method] = self.hooks[obj][method] - self.hooks[obj][method] = nil - registry[self][obj][method] = nil - handlers[uid] = nil - actives[uid] = nil - else - actives[uid] = nil - end - end - end - if self.hooks[obj] and not next(self.hooks[obj]) then - self.hooks[obj] = del(self.hooks[obj]) - end - if not next(registry[self][obj]) then - registry[self][obj] = del(registry[self][obj]) - end -end - --- ("function" [, handler] [, hookSecure]) or (object, "method" [, handler] [, hookSecure]) -function AceHook:Hook(object, method, handler, hookSecure) - if type(object) == "string" then - method, handler, hookSecure = object, method, handler - if handler == true then - handler, hookSecure = nil, true - end - if not hookSecure and issecurevariable(method) then - AceHook:error("Attempt to hook secure function %q. Use `SecureHook' or add `true' to the argument list to override.", method) - end - AceHook:argCheck(handler, 3, "function", "string", "nil") - AceHook:argCheck(hookSecure, 4, "boolean", "nil") - hookFunction(self, method, handler, false) - else - if handler == true then - handler, hookSecure = nil, true - end - if not hookSecure and issecurevariable(object, method) then - AceHook:error("Attempt to hook secure method %q. Use `SecureHook' or add `true' to the argument list to override.", method) - end - AceHook:argCheck(object, 2, "table") - AceHook:argCheck(method, 3, "string") - AceHook:argCheck(handler, 4, "function", "string", "nil") - AceHook:argCheck(hookSecure, 5, "boolean", "nil") - hookMethod(self, object, method, handler, false, false) - end -end - --- ("function", handler) or (object, "method", handler) -function AceHook:SecureHook(object, method, handler) - if type(object) == "string" then - method, handler = object, method - AceHook:argCheck(handler, 3, "function", "string", "nil") - hookFunction(self, method, handler, true) - else - AceHook:argCheck(object, 2, "table") - AceHook:argCheck(method, 3, "string") - AceHook:argCheck(handler, 4, "function", "string", "nil") - hookMethod(self, object, method, handler, false, true) - end -end - -function AceHook:HookScript(frame, script, handler) - AceHook:argCheck(frame, 2, "table") - if not frame[0] or type(frame.IsFrameType) ~= "function" then - AceHook:error("Bad argument #2 to `HookScript'. Expected frame.") - end - AceHook:argCheck(script, 3, "string") - AceHook:argCheck(handler, 4, "function", "string", "nil") - hookMethod(self, frame, script, handler, true, false) -end - --- ("function") or (object, "method") -function AceHook:IsHooked(obj, method) - if type(obj) == "string" then - if registry[self][obj] and actives[registry[self][obj]] then - return true, handlers[registry[self][obj]] - end - else - AceHook:argCheck(obj, 2, "string", "table") - AceHook:argCheck(method, 3, "string") - if registry[self][obj] and registry[self][obj][method] and actives[registry[self][obj][method]] then - return true, handlers[registry[self][obj][method]] - end - end - - return false, nil -end - --- ("function") or (object, "method") -function AceHook:Unhook(obj, method) - if type(obj) == "string" then - unhookFunction(self, obj) - else - AceHook:argCheck(obj, 2, "string", "table") - AceHook:argCheck(method, 3, "string") - unhookMethod(self, obj, method) - end -end - -function AceHook:UnhookAll() - for key, value in pairs(registry[self]) do - if type(key) == "table" then - for method in pairs(value) do - self:Unhook(key, method) - end - else - self:Unhook(key) - end - end -end - -function AceHook:HookReport() - DEFAULT_CHAT_FRAME:AddMessage("This is a list of all active hooks for this object:") - if not next(registry[self]) then - DEFAULT_CHAT_FRAME:AddMessage("No hooks") - end - - for key, value in pairs(registry[self]) do - if type(value) == "table" then - for method, uid in pairs(value) do - DEFAULT_CHAT_FRAME:AddMessage(string.format("object: %s method: %q |cff%s|r%s", tostring(key), method, actives[uid] and "00ff00Active" or "ffff00Inactive", not self.hooks[key][method] and " |cff7f7fff-Secure-|r" or "")) - end - else - DEFAULT_CHAT_FRAME:AddMessage(string.format("function: %q |cff%s|r%s", tostring(key), actives[value] and "00ff00Active" or "ffff00Inactive", not self.hooks[key] and " |cff7f7fff-Secure-|r" or "")) - end - end -end - -function AceHook:OnInstanceInit(object) - if not object.hooks then - object.hooks = new() - end - if not registry[object] then - registry[object] = new() - end -end - -AceHook.OnManualEmbed = AceHook.OnInstanceInit - -function AceHook:OnEmbedDisable(target) - self.UnhookAll(target) -end - -local function activate(self, oldLib, oldDeactivate) - AceHook = self - - self.handlers = oldLib and oldLib.handlers or {} - self.registry = oldLib and oldLib.registry or {} - self.scripts = oldLib and oldLib.scripts or {} - self.actives = oldLib and oldLib.actives or {} - - handlers = self.handlers - registry = self.registry - scripts = self.scripts - actives = self.actives - - AceHook.super.activate(self, oldLib, oldDeactivate) - - if oldDeactivate then - oldDeactivate(oldLib) - end -end - -AceLibrary:Register(AceHook, MAJOR_VERSION, MINOR_VERSION, activate) +--[[ +Name: AceHook-2.1 +Revision: $Rev: 17638 $ +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/AceHook-2.1 +SVN: http://svn.wowace.com/root/trunk/Ace2/AceHook-2.1 +Description: Mixin to allow for safe hooking of functions, methods, and scripts. +Dependencies: AceLibrary, AceOO-2.0 +]] + +local MAJOR_VERSION = "AceHook-2.1" +local MINOR_VERSION = "$Revision: 17638 $" + +-- 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 loadstring("return function(...) return ... end") and AceLibrary:HasInstance(MAJOR_VERSION) then return end -- lua51 check +if not AceLibrary:HasInstance("AceOO-2.0") then error(MAJOR_VERSION .. " requires AceOO-2.0") end + +--[[--------------------------------------------------------------------------------- + Create the library object +----------------------------------------------------------------------------------]] + +local AceOO = AceLibrary:GetInstance("AceOO-2.0") +local AceHook = AceOO.Mixin { + "Hook", + "HookScript", + "SecureHook", + "Unhook", + "UnhookAll", + "HookReport", + "IsHooked", + } + +--[[--------------------------------------------------------------------------------- + Library Definitions +----------------------------------------------------------------------------------]] + +local protFuncs = { + CameraOrSelectOrMoveStart = true, CameraOrSelectOrMoveStop = true, + TurnOrActionStart = true, TurnOrActionStop = true, + PitchUpStart = true, PitchUpStop = true, + PitchDownStart = true, PitchDownStop = true, + MoveBackwardStart = true, MoveBackwardStop = true, + MoveForwardStart = true, MoveForwardStop = true, + Jump = true, StrafeLeftStart = true, + StrafeLeftStop = true, StrafeRightStart = true, + StrafeRightStop = true, ToggleMouseMove = true, + ToggleRun = true, TurnLeftStart = true, + TurnLeftStop = true, TurnRightStart = true, + TurnRightStop = true, +} + +local function issecurevariable(x) + if protFuncs[x] then + return 1 + else + return nil + end +end + +local _G = getfenv(0) + +local function hooksecurefunc(arg1, arg2, arg3) + if type(arg1) == "string" then + arg1, arg2, arg3 = _G, arg1, arg2 + end + local orig = arg1[arg2] + arg1[arg2] = function(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20) + local x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20 = orig(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20) + + arg3(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20) + + return x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20 + end +end + +local protectedScripts = { + OnClick = true, +} + + +local handlers, scripts, actives, registry + +--[[--------------------------------------------------------------------------------- + Private definitions (Not exposed) +----------------------------------------------------------------------------------]] + +local new, del +do + local list = setmetatable({}, {__mode = "k"}) + function new() + local t = next(list) + if not t then + return {} + end + list[t] = nil + return t + end + + function del(t) + setmetatable(t, nil) + for k in pairs(t) do + t[k] = nil + end + list[t] = true + end +end + +local function createFunctionHook(self, func, handler, orig, secure) + if not secure then + if type(handler) == "string" then + -- The handler is a method, need to self it + local uid + uid = function(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20) + if actives[uid] then + return self[handler](self, a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20) + else + return orig(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20) + end + end + return uid + else + -- The handler is a function, just call it + local uid + uid = function(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20) + if actives[uid] then + return handler(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20) + else + return orig(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20) + end + end + return uid + end + else + -- secure hooks don't call the original method + if type(handler) == "string" then + -- The handler is a method, need to self it + local uid + uid = function(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20) + if actives[uid] then + return self[handler](self, a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20) + end + end + return uid + else + -- The handler is a function, just call it + local uid + uid = function(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20) + if actives[uid] then + return handler(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20) + end + end + return uid + end + end +end + +local function createMethodHook(self, object, method, handler, orig, secure, script) + if script then + if type(handler) == "string" then + local uid + uid = function() + if actives[uid] then + return self[handler](self, object) + else + return orig() + end + end + return uid + else + -- The handler is a function, just call it + local uid + uid = function() + if actives[uid] then + return handler(object) + else + return orig() + end + end + return uid + end + elseif not secure then + if type(handler) == "string" then + local uid + uid = function(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20) + if actives[uid] then + return self[handler](self, a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20) + else + return orig(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20) + end + end + return uid + else + -- The handler is a function, just call it + local uid + uid = function(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20) + if actives[uid] then + return handler(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20) + else + return orig(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20) + end + end + return uid + end + else + -- secure hooks don't call the original method + if type(handler) == "string" then + local uid + uid = function(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20) + if actives[uid] then + return self[handler](self, a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20) + end + end + return uid + else + -- The handler is a function, just call it + local uid + uid = function(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20) + if actives[uid] then + return handler(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20) + end + end + return uid + end + end +end + +local function hookFunction(self, func, handler, secure) + local orig = _G[func] + + if not orig or type(orig) ~= "function" then + AceHook:error("Attempt to hook a non-existant function %q", func) + end + + if not handler then + handler = func + end + + if registry[self][func] then + local uid = registry[self][func] + + if actives[uid] then + -- We have an active hook from this source. Don't multi-hook + AceHook:error("%q already has an active hook from this source.", func) + end + + if handlers[uid] == handler then + -- The hook is inactive, so reactivate it + actives[uid] = true + return + else + AceHook:error("There is a stale hook for %q can't hook or reactivate.", func) + end + end + + if type(handler) == "string" then + if type(self[handler]) ~= "function" then + AceHook:error("Could not find the the handler %q when hooking function %q", handler, func) + end + elseif type(handler) ~= "function" then + AceHook:error("Could not find the handler you supplied when hooking %q", func) + end + + local uid = createFunctionHook(self, func, handler, orig, secure) + registry[self][func] = uid + actives[uid] = true + handlers[uid] = handler + + if not secure then + _G[func] = uid + self.hooks[func] = orig + else + hooksecurefunc(func, uid) + end +end + +local function unhookFunction(self, func) + if not registry[self][func] then + AceHook:error("Tried to unhook %q which is not currently hooked.", func) + end + + local uid = registry[self][func] + + if actives[uid] then + -- See if we own the global function + if self.hooks[func] and _G[func] == uid then + _G[func] = self.hooks[func] + self.hooks[func] = nil + registry[self][func] = nil + handlers[uid] = nil + scripts[uid] = nil + actives[uid] = nil + -- Magically all-done + else + actives[uid] = nil + end + end +end + +local function hookMethod(self, obj, method, handler, script, secure) + if not handler then + handler = method + end + + if not obj or type(obj) ~= "table" then + AceHook:error("The object you supplied could not be found, or isn't a table.") + end + + local uid = registry[self][obj] and registry[self][obj][method] + if uid then + if actives[uid] then + -- We have an active hook from this source. Don't multi-hook + AceHook:error("%q already has an active hook from this source.", method) + end + + if handlers[uid] == handler then + -- The hook is inactive, reactivate it. + actives[uid] = true + return + else + AceHook:error("There is a stale hook for %q can't hook or reactivate.", method) + end + end + + if type(handler) == "string" then + if type(self[handler]) ~= "function" then + AceHook:error("Could not find the handler %q you supplied when hooking method %q", handler, method) + end + elseif type(handler) ~= "function" then + AceHook:error("Could not find the handler you supplied when hooking method %q", method) + end + + local orig + if script then + if not obj.GetScript then + AceHook:error("The object you supplied does not have a GetScript method.") + end + if not obj:HasScript(method) then + AceHook:error("The object you supplied doesn't allow the %q method.", method) + end + + orig = obj:GetScript(method) + if type(orig) ~= "function" then + -- Sometimes there is not a original function for a script. + orig = function() end + end + else + orig = obj[method] + end + if not orig then + AceHook:error("Could not find the method or script %q you are trying to hook.", method) + end + + if not registry[self][obj] then + registry[self][obj] = new() + end + + if not self.hooks[obj] then + self.hooks[obj] = new() + end + + local uid = createMethodHook(self, obj, method, handler, orig, secure, script) + registry[self][obj][method] = uid + actives[uid] = true + handlers[uid] = handler + scripts[uid] = script and true or nil + + if script then + obj:SetScript(method, uid) + self.hooks[obj][method] = orig + elseif not secure then + obj[method] = uid + self.hooks[obj][method] = orig + else + hooksecurefunc(obj, method, uid) + end +end + +local function unhookMethod(self, obj, method) + if not registry[self][obj] or not registry[self][obj][method] then + AceHook:error("Attempt to unhook a method %q that is not currently hooked.", method) + return + end + + local uid = registry[self][obj][method] + + if actives[uid] then + if scripts[uid] then -- If this is a script + if obj:GetScript(method) == uid then + -- We own the script. Revert to normal. + obj:SetScript(method, self.hooks[obj][method]) + self.hooks[obj][method] = nil + registry[self][obj][method] = nil + handlers[uid] = nil + scripts[uid] = nil + actives[uid] = nil + else + actives[uid] = nil + end + else + if self.hooks[obj] and self.hooks[obj][method] and obj[method] == uid then + -- We own the method. Revert to normal. + obj[method] = self.hooks[obj][method] + self.hooks[obj][method] = nil + registry[self][obj][method] = nil + handlers[uid] = nil + actives[uid] = nil + else + actives[uid] = nil + end + end + end + if self.hooks[obj] and not next(self.hooks[obj]) then + self.hooks[obj] = del(self.hooks[obj]) + end + if not next(registry[self][obj]) then + registry[self][obj] = del(registry[self][obj]) + end +end + +-- ("function" [, handler] [, hookSecure]) or (object, "method" [, handler] [, hookSecure]) +function AceHook:Hook(object, method, handler, hookSecure) + if type(object) == "string" then + method, handler, hookSecure = object, method, handler + if handler == true then + handler, hookSecure = nil, true + end + if not hookSecure and issecurevariable(method) then + AceHook:error("Attempt to hook secure function %q. Use `SecureHook' or add `true' to the argument list to override.", method) + end + AceHook:argCheck(handler, 3, "function", "string", "nil") + AceHook:argCheck(hookSecure, 4, "boolean", "nil") + hookFunction(self, method, handler, false) + else + if handler == true then + handler, hookSecure = nil, true + end + if not hookSecure and issecurevariable(object, method) then + AceHook:error("Attempt to hook secure method %q. Use `SecureHook' or add `true' to the argument list to override.", method) + end + AceHook:argCheck(object, 2, "table") + AceHook:argCheck(method, 3, "string") + AceHook:argCheck(handler, 4, "function", "string", "nil") + AceHook:argCheck(hookSecure, 5, "boolean", "nil") + hookMethod(self, object, method, handler, false, false) + end +end + +-- ("function", handler) or (object, "method", handler) +function AceHook:SecureHook(object, method, handler) + if type(object) == "string" then + method, handler = object, method + AceHook:argCheck(handler, 3, "function", "string", "nil") + hookFunction(self, method, handler, true) + else + AceHook:argCheck(object, 2, "table") + AceHook:argCheck(method, 3, "string") + AceHook:argCheck(handler, 4, "function", "string", "nil") + hookMethod(self, object, method, handler, false, true) + end +end + +function AceHook:HookScript(frame, script, handler) + AceHook:argCheck(frame, 2, "table") + if not frame[0] or type(frame.IsFrameType) ~= "function" then + AceHook:error("Bad argument #2 to `HookScript'. Expected frame.") + end + AceHook:argCheck(script, 3, "string") + AceHook:argCheck(handler, 4, "function", "string", "nil") + hookMethod(self, frame, script, handler, true, false) +end + +-- ("function") or (object, "method") +function AceHook:IsHooked(obj, method) + if type(obj) == "string" then + if registry[self][obj] and actives[registry[self][obj]] then + return true, handlers[registry[self][obj]] + end + else + AceHook:argCheck(obj, 2, "string", "table") + AceHook:argCheck(method, 3, "string") + if registry[self][obj] and registry[self][obj][method] and actives[registry[self][obj][method]] then + return true, handlers[registry[self][obj][method]] + end + end + + return false, nil +end + +-- ("function") or (object, "method") +function AceHook:Unhook(obj, method) + if type(obj) == "string" then + unhookFunction(self, obj) + else + AceHook:argCheck(obj, 2, "string", "table") + AceHook:argCheck(method, 3, "string") + unhookMethod(self, obj, method) + end +end + +function AceHook:UnhookAll() + for key, value in pairs(registry[self]) do + if type(key) == "table" then + for method in pairs(value) do + self:Unhook(key, method) + end + else + self:Unhook(key) + end + end +end + +function AceHook:HookReport() + DEFAULT_CHAT_FRAME:AddMessage("This is a list of all active hooks for this object:") + if not next(registry[self]) then + DEFAULT_CHAT_FRAME:AddMessage("No hooks") + end + + for key, value in pairs(registry[self]) do + if type(value) == "table" then + for method, uid in pairs(value) do + DEFAULT_CHAT_FRAME:AddMessage(string.format("object: %s method: %q |cff%s|r%s", tostring(key), method, actives[uid] and "00ff00Active" or "ffff00Inactive", not self.hooks[key][method] and " |cff7f7fff-Secure-|r" or "")) + end + else + DEFAULT_CHAT_FRAME:AddMessage(string.format("function: %q |cff%s|r%s", tostring(key), actives[value] and "00ff00Active" or "ffff00Inactive", not self.hooks[key] and " |cff7f7fff-Secure-|r" or "")) + end + end +end + +function AceHook:OnInstanceInit(object) + if not object.hooks then + object.hooks = new() + end + if not registry[object] then + registry[object] = new() + end +end + +AceHook.OnManualEmbed = AceHook.OnInstanceInit + +function AceHook:OnEmbedDisable(target) + self.UnhookAll(target) +end + +local function activate(self, oldLib, oldDeactivate) + AceHook = self + + self.handlers = oldLib and oldLib.handlers or {} + self.registry = oldLib and oldLib.registry or {} + self.scripts = oldLib and oldLib.scripts or {} + self.actives = oldLib and oldLib.actives or {} + + handlers = self.handlers + registry = self.registry + scripts = self.scripts + actives = self.actives + + AceHook.super.activate(self, oldLib, oldDeactivate) + + if oldDeactivate then + oldDeactivate(oldLib) + end +end + +AceLibrary:Register(AceHook, MAJOR_VERSION, MINOR_VERSION, activate) diff --git a/Payload/Interface/Addons/nampowersettings/libs/AceLibrary/AceLibrary.lua b/Payload/Interface/Addons/nampowersettings/libs/AceLibrary/AceLibrary.lua index 0f2b237..2ea0bd4 100644 --- a/Payload/Interface/Addons/nampowersettings/libs/AceLibrary/AceLibrary.lua +++ b/Payload/Interface/Addons/nampowersettings/libs/AceLibrary/AceLibrary.lua @@ -1,757 +1,757 @@ ---[[ -Name: AceLibrary -Revision: $Rev: 17722 $ -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: 17722 $ -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 -]] - -local ACELIBRARY_MAJOR = "AceLibrary" -local ACELIBRARY_MINOR = "$Revision: 17722 $" - -if loadstring("return function(...) return ... end") and AceLibrary and AceLibrary:HasInstance(ACELIBRARY_MAJOR) then return end -- lua51 check -local table_setn -do - local version = GetBuildInfo() - if string.find(version, "^2%.") then - -- 2.0.0 - table_setn = function() end - else - table_setn = table.setn - end -end - -local string_gfind = string.gmatch or string.gfind - -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,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10) - local success, err = pcall(func,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10) - if not success then geterrorhandler()(err) end -end - --- @table AceLibrary --- @brief System to handle all versioning of libraries. -local AceLibrary = {} -local AceLibrary_mt = {} -setmetatable(AceLibrary, AceLibrary_mt) - -local tmp -local function error(self, message, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20) - if type(self) ~= "table" then - _G.error(string.format("Bad argument #1 to `error' (table expected, got %s)", type(self)), 2) - end - if not tmp then - tmp = {} - else - for k in pairs(tmp) do tmp[k] = nil end - table_setn(tmp, 0) - end - - table.insert(tmp, a1) - table.insert(tmp, a2) - table.insert(tmp, a3) - table.insert(tmp, a4) - table.insert(tmp, a5) - table.insert(tmp, a6) - table.insert(tmp, a7) - table.insert(tmp, a8) - table.insert(tmp, a9) - table.insert(tmp, a10) - table.insert(tmp, a11) - table.insert(tmp, a12) - table.insert(tmp, a13) - table.insert(tmp, a14) - table.insert(tmp, a15) - table.insert(tmp, a16) - table.insert(tmp, a17) - table.insert(tmp, a18) - table.insert(tmp, a19) - table.insert(tmp, a20) - - local stack = debugstack() - if not message then - local _,_,second = string.find(stack, "\n(.-)\n") - message = "error raised! " .. second - else - for i = 1,table.getn(tmp) do - tmp[i] = tostring(tmp[i]) - end - for i = 1,10 do - table.insert(tmp, "nil") - end - message = string.format(message, unpack(tmp)) - end - - if getmetatable(self) and getmetatable(self).__tostring then - message = string.format("%s: %s", tostring(self), message) - elseif type(rawget(self, 'GetLibraryVersion')) == "function" and AceLibrary:HasInstance(self:GetLibraryVersion()) then - message = string.format("%s: %s", self:GetLibraryVersion(), message) - elseif type(rawget(self, 'class')) == "table" and type(rawget(self.class, 'GetLibraryVersion')) == "function" and AceLibrary:HasInstance(self.class:GetLibraryVersion()) then - message = string.format("%s: %s", self.class:GetLibraryVersion(), message) - end - - local first = string.gsub(stack, "\n.*", "") - local file = string.gsub(first, ".*\\(.*).lua:%d+: .*", "%1") - file = string.gsub(file, "([%(%)%.%*%+%-%[%]%?%^%$%%])", "%%%1") - - local i = 0 - for s in string_gfind(stack, "\n([^\n]*)") do - i = i + 1 - if not string.find(s, file .. "%.lua:%d+:") then - file = string.gsub(s, "^.*\\(.*).lua:%d+: .*", "%1") - file = string.gsub(file, "([%(%)%.%*%+%-%[%]%?%^%$%%])", "%%%1") - break - end - end - local j = 0 - for s in string_gfind(stack, "\n([^\n]*)") do - j = j + 1 - if j > i and not string.find(s, file .. "%.lua:%d+:") then - _G.error(message, j + 1) - return - end - end - _G.error(message, 2) - return -end - -local function assert(self, condition, message, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20) - if not condition then - if not message then - local stack = debugstack() - local _,_,second = string.find(stack, "\n(.-)\n") - message = "assertion failed! " .. second - end - error(self, message, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20) - return - end - return condition -end - -local function argCheck(self, arg, num, kind, kind2, kind3, kind4, kind5) - if type(num) ~= "number" then - error(self, "Bad argument #3 to `argCheck' (number expected, got %s)", type(num)) - elseif type(kind) ~= "string" then - 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 _,_,func = string.find(debugstack(), "`argCheck'.-([`<].-['>])") - if not func then - _,_,func = string.find(debugstack(), "([`<].-['>])") - end - if kind5 then - 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 - 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 - 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 - error(self, "Bad argument #%s to %s (%s or %s expected, got %s)", tonumber(num) or 0/0, func, kind, kind2, arg) - else - error(self, "Bad argument #%s to %s (%s expected, got %s)", tonumber(num) or 0/0, func, kind, arg) - end - end -end - -local function pcall(self, func, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20) - a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20 = _G.pcall(func, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20) - if not a1 then - error(self, string.gsub(a2, ".-%.lua:%d-: ", "")) - else - return a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20 - 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 string.find(text, "^%$Revision: (%d+) %$$") then - return tonumber((string.gsub(text, "^%$Revision: (%d+) %$$", "%1"))) - elseif string.find(text, "^%$Rev: (%d+) %$$") then - return tonumber((string.gsub(text, "^%$Rev: (%d+) %$$", "%1"))) - elseif string.find(text, "^%$LastChangedRevision: (%d+) %$$") then - return tonumber((string.gsub(text, "^%$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 - table_setn(t, 0) -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 - -local new, del -do - local tables = setmetatable({}, {__mode = "k"}) - - function new() - local t = next(tables) - if t then - tables[t] = nil - return t - else - return {} - end - end - - function del(t, depth) - if depth and depth > 0 then - for k,v in pairs(t) do - if type(v) == "table" and not isFrame(v) then - del(v, depth - 1) - end - end - end - destroyTable(t) - tables[t] = true - end -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 = new() - for k,v in pairs(from) do to[k] = v end - table_setn(to, table.getn(from)) - 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) - local createdList - if not list then - createdList = true - list = new() - list2 = new() - 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 - table_setn(to, table.getn(from)) - 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) - if createdList then - del(list) - del(list2) - end - 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(string.format("Bad argument #3 to `IsNewVersion'. Must be a number or SVN revision string. %q is not appropriate", 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") - TryToLoadStandalone(major) - - if minor then - if type(minor) == "string" then - local m = svnRevisionToNumber(minor) - if m then - minor = m - else - _G.error(string.format("Bad argument #3 to `HasInstance'. Must be a number or SVN revision string. %q is not appropriate", 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(string.format("Cannot find a library instance of %s.", major), 2) - return - end - if minor then - if type(minor) == "string" then - local m = svnRevisionToNumber(minor) - if m then - minor = m - else - _G.error(string.format("Bad argument #3 to `GetInstance'. Must be a number or SVN revision string. %q is not appropriate", minor), 2) - end - end - argCheck(self, minor, 2, "number") - if data.minor ~= minor then - _G.error(string.format("Cannot find a library instance of %s, minor version %d.", major, minor), 2) - return - end - end - return data.instance -end - --- Syntax sugar. AceLibrary("FooBar-1.0") -AceLibrary_mt.__call = AceLibrary.GetInstance - -local donothing - -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 type(minor) == "string" then - local m = svnRevisionToNumber(minor) - if m then - minor = m - else - _G.error(string.format("Bad argument #4 to `Register'. Must be a number or SVN revision string. %q is not appropriate", 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 - if not donothing then - donothing = function() end - end - 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 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 - 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(string.format("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", major, data.minor, minor, major, minor), 2) - return - end - -- This is an update - local oldInstance = new() - - 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 - old_assert = instance.assert - old_argCheck = instance.argCheck - old_pcall = instance.pcall - - self.error = error - self.assert = assert - 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 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 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) - else - safecall(oldDeactivateFunc, oldInstance) - end - del(oldInstance) - - 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) - if not self.libs then - if oldLib then - self.libs = oldLib.libs - self.scannedlibs = oldLib.scannedlibs - end - if not self.libs then - self.libs = {} - end - if not self.scannedlibs then - self.scannedlibs = {} - end - end - if not self.positions then - if oldLib then - self.positions = oldLib.positions - end - if not self.positions then - self.positions = setmetatable({}, { __mode = "k" }) - end - 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) +--[[ +Name: AceLibrary +Revision: $Rev: 17722 $ +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: 17722 $ +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 +]] + +local ACELIBRARY_MAJOR = "AceLibrary" +local ACELIBRARY_MINOR = "$Revision: 17722 $" + +if loadstring("return function(...) return ... end") and AceLibrary and AceLibrary:HasInstance(ACELIBRARY_MAJOR) then return end -- lua51 check +local table_setn +do + local version = GetBuildInfo() + if string.find(version, "^2%.") then + -- 2.0.0 + table_setn = function() end + else + table_setn = table.setn + end +end + +local string_gfind = string.gmatch or string.gfind + +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,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10) + local success, err = pcall(func,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10) + if not success then geterrorhandler()(err) end +end + +-- @table AceLibrary +-- @brief System to handle all versioning of libraries. +local AceLibrary = {} +local AceLibrary_mt = {} +setmetatable(AceLibrary, AceLibrary_mt) + +local tmp +local function error(self, message, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20) + if type(self) ~= "table" then + _G.error(string.format("Bad argument #1 to `error' (table expected, got %s)", type(self)), 2) + end + if not tmp then + tmp = {} + else + for k in pairs(tmp) do tmp[k] = nil end + table_setn(tmp, 0) + end + + table.insert(tmp, a1) + table.insert(tmp, a2) + table.insert(tmp, a3) + table.insert(tmp, a4) + table.insert(tmp, a5) + table.insert(tmp, a6) + table.insert(tmp, a7) + table.insert(tmp, a8) + table.insert(tmp, a9) + table.insert(tmp, a10) + table.insert(tmp, a11) + table.insert(tmp, a12) + table.insert(tmp, a13) + table.insert(tmp, a14) + table.insert(tmp, a15) + table.insert(tmp, a16) + table.insert(tmp, a17) + table.insert(tmp, a18) + table.insert(tmp, a19) + table.insert(tmp, a20) + + local stack = debugstack() + if not message then + local _,_,second = string.find(stack, "\n(.-)\n") + message = "error raised! " .. second + else + for i = 1,table.getn(tmp) do + tmp[i] = tostring(tmp[i]) + end + for i = 1,10 do + table.insert(tmp, "nil") + end + message = string.format(message, unpack(tmp)) + end + + if getmetatable(self) and getmetatable(self).__tostring then + message = string.format("%s: %s", tostring(self), message) + elseif type(rawget(self, 'GetLibraryVersion')) == "function" and AceLibrary:HasInstance(self:GetLibraryVersion()) then + message = string.format("%s: %s", self:GetLibraryVersion(), message) + elseif type(rawget(self, 'class')) == "table" and type(rawget(self.class, 'GetLibraryVersion')) == "function" and AceLibrary:HasInstance(self.class:GetLibraryVersion()) then + message = string.format("%s: %s", self.class:GetLibraryVersion(), message) + end + + local first = string.gsub(stack, "\n.*", "") + local file = string.gsub(first, ".*\\(.*).lua:%d+: .*", "%1") + file = string.gsub(file, "([%(%)%.%*%+%-%[%]%?%^%$%%])", "%%%1") + + local i = 0 + for s in string_gfind(stack, "\n([^\n]*)") do + i = i + 1 + if not string.find(s, file .. "%.lua:%d+:") then + file = string.gsub(s, "^.*\\(.*).lua:%d+: .*", "%1") + file = string.gsub(file, "([%(%)%.%*%+%-%[%]%?%^%$%%])", "%%%1") + break + end + end + local j = 0 + for s in string_gfind(stack, "\n([^\n]*)") do + j = j + 1 + if j > i and not string.find(s, file .. "%.lua:%d+:") then + _G.error(message, j + 1) + return + end + end + _G.error(message, 2) + return +end + +local function assert(self, condition, message, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20) + if not condition then + if not message then + local stack = debugstack() + local _,_,second = string.find(stack, "\n(.-)\n") + message = "assertion failed! " .. second + end + error(self, message, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20) + return + end + return condition +end + +local function argCheck(self, arg, num, kind, kind2, kind3, kind4, kind5) + if type(num) ~= "number" then + error(self, "Bad argument #3 to `argCheck' (number expected, got %s)", type(num)) + elseif type(kind) ~= "string" then + 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 _,_,func = string.find(debugstack(), "`argCheck'.-([`<].-['>])") + if not func then + _,_,func = string.find(debugstack(), "([`<].-['>])") + end + if kind5 then + 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 + 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 + 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 + error(self, "Bad argument #%s to %s (%s or %s expected, got %s)", tonumber(num) or 0/0, func, kind, kind2, arg) + else + error(self, "Bad argument #%s to %s (%s expected, got %s)", tonumber(num) or 0/0, func, kind, arg) + end + end +end + +local function pcall(self, func, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20) + a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20 = _G.pcall(func, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20) + if not a1 then + error(self, string.gsub(a2, ".-%.lua:%d-: ", "")) + else + return a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20 + 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 string.find(text, "^%$Revision: (%d+) %$$") then + return tonumber((string.gsub(text, "^%$Revision: (%d+) %$$", "%1"))) + elseif string.find(text, "^%$Rev: (%d+) %$$") then + return tonumber((string.gsub(text, "^%$Rev: (%d+) %$$", "%1"))) + elseif string.find(text, "^%$LastChangedRevision: (%d+) %$$") then + return tonumber((string.gsub(text, "^%$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 + table_setn(t, 0) +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 + +local new, del +do + local tables = setmetatable({}, {__mode = "k"}) + + function new() + local t = next(tables) + if t then + tables[t] = nil + return t + else + return {} + end + end + + function del(t, depth) + if depth and depth > 0 then + for k,v in pairs(t) do + if type(v) == "table" and not isFrame(v) then + del(v, depth - 1) + end + end + end + destroyTable(t) + tables[t] = true + end +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 = new() + for k,v in pairs(from) do to[k] = v end + table_setn(to, table.getn(from)) + 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) + local createdList + if not list then + createdList = true + list = new() + list2 = new() + 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 + table_setn(to, table.getn(from)) + 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) + if createdList then + del(list) + del(list2) + end + 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(string.format("Bad argument #3 to `IsNewVersion'. Must be a number or SVN revision string. %q is not appropriate", 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") + TryToLoadStandalone(major) + + if minor then + if type(minor) == "string" then + local m = svnRevisionToNumber(minor) + if m then + minor = m + else + _G.error(string.format("Bad argument #3 to `HasInstance'. Must be a number or SVN revision string. %q is not appropriate", 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(string.format("Cannot find a library instance of %s.", major), 2) + return + end + if minor then + if type(minor) == "string" then + local m = svnRevisionToNumber(minor) + if m then + minor = m + else + _G.error(string.format("Bad argument #3 to `GetInstance'. Must be a number or SVN revision string. %q is not appropriate", minor), 2) + end + end + argCheck(self, minor, 2, "number") + if data.minor ~= minor then + _G.error(string.format("Cannot find a library instance of %s, minor version %d.", major, minor), 2) + return + end + end + return data.instance +end + +-- Syntax sugar. AceLibrary("FooBar-1.0") +AceLibrary_mt.__call = AceLibrary.GetInstance + +local donothing + +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 type(minor) == "string" then + local m = svnRevisionToNumber(minor) + if m then + minor = m + else + _G.error(string.format("Bad argument #4 to `Register'. Must be a number or SVN revision string. %q is not appropriate", 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 + if not donothing then + donothing = function() end + end + 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 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 + 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(string.format("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", major, data.minor, minor, major, minor), 2) + return + end + -- This is an update + local oldInstance = new() + + 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 + old_assert = instance.assert + old_argCheck = instance.argCheck + old_pcall = instance.pcall + + self.error = error + self.assert = assert + 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 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 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) + else + safecall(oldDeactivateFunc, oldInstance) + end + del(oldInstance) + + 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) + if not self.libs then + if oldLib then + self.libs = oldLib.libs + self.scannedlibs = oldLib.scannedlibs + end + if not self.libs then + self.libs = {} + end + if not self.scannedlibs then + self.scannedlibs = {} + end + end + if not self.positions then + if oldLib then + self.positions = oldLib.positions + end + if not self.positions then + self.positions = setmetatable({}, { __mode = "k" }) + end + 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) diff --git a/Payload/Interface/Addons/nampowersettings/libs/AceLocale-2.2/AceLocale-2.2.lua b/Payload/Interface/Addons/nampowersettings/libs/AceLocale-2.2/AceLocale-2.2.lua index fbf9c87..b41b5b3 100644 --- a/Payload/Interface/Addons/nampowersettings/libs/AceLocale-2.2/AceLocale-2.2.lua +++ b/Payload/Interface/Addons/nampowersettings/libs/AceLocale-2.2/AceLocale-2.2.lua @@ -1,538 +1,538 @@ ---[[ -Name: AceLocale-2.2 -Revision: $Rev: 17638 $ -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 -]] - -local MAJOR_VERSION = "AceLocale-2.2" -local MINOR_VERSION = "$Revision: 17639 $" - -if not AceLibrary then error(MAJOR_VERSION .. " requires AceLibrary.") end -if not AceLibrary:IsNewVersion(MAJOR_VERSION, MINOR_VERSION) then return end - -if loadstring("return function(...) return ... end") and AceLibrary:HasInstance(MAJOR_VERSION) then return end -- lua51 check -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) - 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, {}) - 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: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 x[text] and true -end - -function AceLocale.prototype:Debug() - if not rawget(self, DEBUGGING) then - return - end - local words = {} - local locales = {"enUS", "ruRU", "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(string.format("Locale %q not found", 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(string.format("Locale %q complete", locale)) - else - DEFAULT_CHAT_FRAME:AddMessage(string.format("Locale %q missing:", locale)) - for word in pairs(t) do - DEFAULT_CHAT_FRAME:AddMessage(string.format(" %q", 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 {} - - BASE_TRANSLATIONS = self.BASE_TRANSLATIONS - DEBUGGING = self.DEBUGGING - TRANSLATIONS = self.TRANSLATIONS - BASE_LOCALE = self.BASE_LOCALE - TRANSLATION_TABLES = self.TRANSLATION_TABLES - REVERSE_TRANSLATIONS = self.REVERSE_TRANSLATIONS - STRICTNESS = self.STRICTNESS - NAME = self.NAME - DYNAMIC_LOCALES = self.DYNAMIC_LOCALES - CURRENT_LOCALE = self.CURRENT_LOCALE - - - local GetTime = GetTime - local timeUntilClear = GetTime() + 5 - scheduleClear = function() - if next(newRegistries) then - self.frame:Show() - timeUntilClear = GetTime() + 5 - end - end - - if not self.registry then - self.registry = {} - else - for name, instance in pairs(self.registry) do - local name = name - local mt = getmetatable(instance) - setmetatable(instance, nil) - instance[NAME] = name - local strict - if instance[STRICTNESS] ~= nil then - strict = instance[STRICTNESS] - elseif instance[TRANSLATIONS] ~= instance[BASE_TRANSLATIONS] then - if getmetatable(instance[TRANSLATIONS]).__index == oldLib.prototype then - strict = true - end - end - instance[STRICTNESS] = strict and true or false - refixInstance(instance) - end - end - - self.frame:SetScript("OnEvent", scheduleClear) - self.frame:SetScript("OnUpdate", function() -- (this, elapsed) - if timeUntilClear - GetTime() <= 0 then - self.frame:Hide() - for k in pairs(newRegistries) do - clearCache(k) - newRegistries[k] = nil - k = nil - end - end - end) - self.frame:UnregisterAllEvents() - self.frame:RegisterEvent("ADDON_LOADED") - self.frame:RegisterEvent("PLAYER_ENTERING_WORLD") - self.frame:Show() - - if oldDeactivate then - oldDeactivate(oldLib) - end -end - -AceLibrary:Register(AceLocale, MAJOR_VERSION, MINOR_VERSION, activate) +--[[ +Name: AceLocale-2.2 +Revision: $Rev: 17638 $ +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 +]] + +local MAJOR_VERSION = "AceLocale-2.2" +local MINOR_VERSION = "$Revision: 17639 $" + +if not AceLibrary then error(MAJOR_VERSION .. " requires AceLibrary.") end +if not AceLibrary:IsNewVersion(MAJOR_VERSION, MINOR_VERSION) then return end + +if loadstring("return function(...) return ... end") and AceLibrary:HasInstance(MAJOR_VERSION) then return end -- lua51 check +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) + 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, {}) + 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: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 x[text] and true +end + +function AceLocale.prototype:Debug() + if not rawget(self, DEBUGGING) then + return + end + local words = {} + local locales = {"enUS", "ruRU", "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(string.format("Locale %q not found", 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(string.format("Locale %q complete", locale)) + else + DEFAULT_CHAT_FRAME:AddMessage(string.format("Locale %q missing:", locale)) + for word in pairs(t) do + DEFAULT_CHAT_FRAME:AddMessage(string.format(" %q", 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 {} + + 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) diff --git a/Payload/Interface/Addons/nampowersettings/libs/AceModuleCore-2.0/AceModuleCore-2.0.lua b/Payload/Interface/Addons/nampowersettings/libs/AceModuleCore-2.0/AceModuleCore-2.0.lua index 32c89fb..42fcc16 100644 --- a/Payload/Interface/Addons/nampowersettings/libs/AceModuleCore-2.0/AceModuleCore-2.0.lua +++ b/Payload/Interface/Addons/nampowersettings/libs/AceModuleCore-2.0/AceModuleCore-2.0.lua @@ -1,462 +1,462 @@ ---[[ -Name: AceModuleCore-2.0 -Revision: $Rev: 17998 $ -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/AceModuleCore-2.0 -SVN: http://svn.wowace.com/root/trunk/Ace2/AceModuleCore-2.0 -Description: Mixin to provide a module system so that modules or plugins can - use an addon as its core. -Dependencies: AceLibrary, AceOO-2.0, AceAddon-2.0, AceEvent-2.0 (optional), Compost-2.0 (optional) -]] - -local MAJOR_VERSION = "AceModuleCore-2.0" -local MINOR_VERSION = "$Revision: 17998 $" - -if not AceLibrary then error(MAJOR_VERSION .. " requires AceLibrary") end -if not AceLibrary:IsNewVersion(MAJOR_VERSION, MINOR_VERSION) then return end - -if loadstring("return function(...) return ... end") and AceLibrary:HasInstance(MAJOR_VERSION) then return end -- lua51 check -if not AceLibrary:HasInstance("AceOO-2.0") then error(MAJOR_VERSION .. " requires AceOO-2.0") end - -local function safecall(func,a,b,c,d,e,f,g) - local success, err = pcall(func,a,b,c,d,e,f,g) - if not success then geterrorhandler()(err) end -end - -local table_setn -do - local version = GetBuildInfo() - if string.find(version, "^2%.") then - -- 2.0.0 - table_setn = function() end - else - table_setn = table.setn - end -end - -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) - for k in pairs(t) do - t[k] = nil - end - table_setn(t, 0) - list[t] = true - return nil - end -end - -local AceOO = AceLibrary:GetInstance("AceOO-2.0") -local AceModuleCore = AceOO.Mixin { - "NewModule", - "HasModule", - "GetModule", - "IsModule", - "IterateModules", - "SetModuleMixins", - "SetModuleClass", - "IsModuleActive", - "ToggleModuleActive" - } -local AceEvent - -local Compost = AceLibrary:HasInstance("Compost-2.0") and AceLibrary("Compost-2.0") - -local function getlibrary(lib) - if type(lib) == "string" then - return AceLibrary(lib) - else - return lib - end -end - -local tmp -function AceModuleCore:NewModule(name, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20) - if not self.modules then - AceModuleCore:error("CreatePrototype() must be called before attempting to create a new module.", 2) - end - AceModuleCore:argCheck(name, 2, "string") - if string.len(name) == 0 then - AceModuleCore:error("Bad argument #2 to `NewModule`, string must not be empty") - end - if self.modules[name] then - AceModuleCore:error("The module %q has already been registered", name) - end - - if not tmp then - tmp = {} - end - if a1 then table.insert(tmp, a1) - if a2 then table.insert(tmp, a2) - if a3 then table.insert(tmp, a3) - if a4 then table.insert(tmp, a4) - if a5 then table.insert(tmp, a5) - if a6 then table.insert(tmp, a6) - if a7 then table.insert(tmp, a7) - if a8 then table.insert(tmp, a8) - if a9 then table.insert(tmp, a9) - if a10 then table.insert(tmp, a10) - if a11 then table.insert(tmp, a11) - if a12 then table.insert(tmp, a12) - if a13 then table.insert(tmp, a13) - if a14 then table.insert(tmp, a14) - if a15 then table.insert(tmp, a15) - if a16 then table.insert(tmp, a16) - if a17 then table.insert(tmp, a17) - if a18 then table.insert(tmp, a18) - if a19 then table.insert(tmp, a19) - if a20 then table.insert(tmp, a20) - end end end end end end end end end end end end end end end end end end end end - for k,v in ipairs(tmp) do - tmp[k] = getlibrary(v) - end - - if self.moduleMixins then - for _,mixin in ipairs(self.moduleMixins) do - local exists = false - for _,v in ipairs(tmp) do - if mixin == v then - exists = true - break - end - end - if not exists then - table.insert(tmp, mixin) - end - end - end - - local module = AceOO.Classpool(self.moduleClass, unpack(tmp)):new(name) - self.modules[name] = module - module.name = name - module.title = name - - AceModuleCore.totalModules[module] = self - - if AceEvent then - AceEvent:TriggerEvent("Ace2_ModuleCreated", module) - end - - for k in pairs(tmp) do - tmp[k] = nil - end - table_setn(tmp, 0) - return module -end - -function AceModuleCore:HasModule(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20) - if a1 then if not self.modules[a1] then return false end - if a2 then if not self.modules[a2] then return false end - if a3 then if not self.modules[a3] then return false end - if a4 then if not self.modules[a4] then return false end - if a5 then if not self.modules[a5] then return false end - if a6 then if not self.modules[a6] then return false end - if a7 then if not self.modules[a7] then return false end - if a8 then if not self.modules[a8] then return false end - if a9 then if not self.modules[a9] then return false end - if a10 then if not self.modules[a10] then return false end - if a11 then if not self.modules[a11] then return false end - if a12 then if not self.modules[a12] then return false end - if a13 then if not self.modules[a13] then return false end - if a14 then if not self.modules[a14] then return false end - if a15 then if not self.modules[a15] then return false end - if a16 then if not self.modules[a16] then return false end - if a17 then if not self.modules[a17] then return false end - if a18 then if not self.modules[a18] then return false end - if a19 then if not self.modules[a19] then return false end - if a20 then if not self.modules[a20] then return false end - end end end end end end end end end end end end end end end end end end end end - - return true -end - -function AceModuleCore:GetModule(name) - if not self.modules then - AceModuleCore:error("Error initializing class. Please report error.") - end - if not self.modules[name] then - AceModuleCore:error("Cannot find module %q.", name) - end - return self.modules[name] -end - -function AceModuleCore:IsModule(module) - if self == AceModuleCore then - return AceModuleCore.totalModules[module] - else - for k,v in pairs(self.modules) do - if v == module then - return true - end - end - return false - end -end - -function AceModuleCore:IterateModules() - local t = new() - for k in pairs(self.modules) do - table.insert(t, k) - end - table.sort(t) - local i = 0 - return function() - i = i + 1 - local x = t[i] - if x then - return x, self.modules[x] - else - t = del(t) - return nil - end - end, nil, nil -end - -function AceModuleCore:SetModuleMixins(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20) - if self.moduleMixins then - AceModuleCore:error('Cannot call "SetModuleMixins" twice') - elseif not self.modules then - AceModuleCore:error("Error initializing class. Please report error.") - elseif next(self.modules) then - AceModuleCore:error('Cannot call "SetModuleMixins" after "NewModule" has been called.') - end - - self.moduleMixins = Compost and Compost:Acquire(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20) or {a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20} - for k,v in ipairs(self.moduleMixins) do - self.moduleMixins[k] = getlibrary(v) - end -end - -function AceModuleCore:SetModuleClass(class) - class = getlibrary(class) - AceModuleCore:assert(AceOO.inherits(class, AceOO.Class), "Bad argument #2 to `SetModuleClass' (Class expected)") - if not self.modules then - AceModuleCore:error("Error initializing class. Please report error.") - end - if self.customModuleClass then - AceModuleCore:error("Cannot call `SetModuleClass' twice.") - end - self.customModuleClass = true - self.moduleClass = class - self.modulePrototype = class.prototype -end - -function AceModuleCore:ToggleModuleActive(module, state) - AceModuleCore:argCheck(module, 2, "table", "string") - AceModuleCore:argCheck(state, 3, "nil", "boolean") - - if type(module) == "string" then - if not self:HasModule(module) then - AceModuleCore:error("Cannot find module %q", module) - end - module = self:GetModule(module) - else - if not self:IsModule(module) then - AceModuleCore:error("%q is not a module", module) - end - end - - local disable - if state == nil then - disable = self:IsModuleActive(module) - else - disable = not state - if disable ~= self:IsModuleActive(module) then - return - end - end - - if type(module.ToggleActive) == "function" then - return module:ToggleActive(not disable) - elseif AceOO.inherits(self, "AceDB-2.0") then - if not self.db or not self.db.raw then - AceModuleCore:error("Cannot toggle a module until `RegisterDB' has been called and `ADDON_LOADED' has been fireed.") - end - if type(self.db.raw.disabledModules) ~= "table" then - self.db.raw.disabledModules = Compost and Compost:Acquire() or {} - end - local _,profile = self:GetProfile() - if type(self.db.raw.disabledModules[profile]) ~= "table" then - self.db.raw.disabledModules[profile] = Compost and Compost:Acquire() or {} - end - if type(self.db.raw.disabledModules[profile][module.name]) ~= "table" then - self.db.raw.disabledModules[profile][module.name] = disable or nil - end - if not disable then - if not next(self.db.raw.disabledModules[profile]) then - if Compost then - Compost:Reclaim(self.db.raw.disabledModules[profile]) - end - self.db.raw.disabledModules[profile] = nil - end - if not next(self.db.raw.disabledModules) then - if Compost then - Compost:Reclaim(self.db.raw.disabledModules) - end - self.db.raw.disabledModules = nil - end - end - else - if type(self.disabledModules) ~= "table" then - self.disabledModules = Compost and Compost:Acquire() or {} - end - self.disabledModules[module.name] = disable or nil - end - if AceOO.inherits(module, "AceAddon-2.0") then - local AceAddon = AceLibrary("AceAddon-2.0") - if not AceAddon.addonsStarted[module] then - return - end - end - if not disable then - local current = module.class - while true do - if current == AceOO.Class then - break - end - if current.mixins then - for mixin in pairs(current.mixins) do - if type(mixin.OnEmbedEnable) == "function" then - safecall(mixin.OnEmbedEnable, mixin, module) - end - end - end - current = current.super - end - if type(module.OnEnable) == "function" then - safecall(module.OnEnable, module) - end - if AceEvent then - AceEvent:TriggerEvent("Ace2_AddonEnabled", module) - end - else - local current = module.class - while true do - if current == AceOO.Class then - break - end - if current.mixins then - for mixin in pairs(current.mixins) do - if type(mixin.OnEmbedDisable) == "function" then - safecall(mixin.OnEmbedDisable, mixin, module) - end - end - end - current = current.super - end - if type(module.OnDisable) == "function" then - safecall(module.OnDisable, module) - end - if AceEvent then - AceEvent:TriggerEvent("Ace2_AddonDisabled", module) - end - end - return not disable -end - -function AceModuleCore:IsModuleActive(module) - AceModuleCore:argCheck(module, 2, "table", "string") - - if AceModuleCore == self then - self:argCheck(module, 2, "table") - - local core = AceModuleCore.totalModules[module] - if not core then - self:error("Bad argument #2 to `IsModuleActive'. Not a module") - end - return core:IsModuleActive(module) - end - - if type(module) == "string" then - if not self:HasModule(module) then - AceModuleCore:error("Cannot find module %q", module) - end - module = self:GetModule(module) - else - if not self:IsModule(module) then - AceModuleCore:error("%q is not a module", module) - end - end - - if type(module.IsActive) == "function" then - return module:IsActive() - elseif AceOO.inherits(self, "AceDB-2.0") then - local _,profile = self:GetProfile() - return not self.db or not self.db.raw or not self.db.raw.disabledModules or not self.db.raw.disabledModules[profile] or not self.db.raw.disabledModules[profile][module.name] - else - return not self.disabledModules or not self.disabledModules[module.name] - end -end - -function AceModuleCore:OnInstanceInit(target) - if target.modules then - AceModuleCore:error("OnInstanceInit cannot be called twice") - end - target.modules = Compost and Compost:Acquire() or {} - - target.moduleClass = AceOO.Class("AceAddon-2.0") - target.modulePrototype = target.moduleClass.prototype -end - -AceModuleCore.OnManualEmbed = AceModuleCore.OnInstanceInit - -function AceModuleCore.OnEmbedProfileDisable(AceModuleCore, self, newProfile) - if not AceOO.inherits(self, "AceDB-2.0") then - return - end - local _,currentProfile = self:GetProfile() - for k, module in pairs(self.modules) do - if type(module.IsActive) == "function" or type(module.ToggleActive) == "function" then - -- continue - else - local currentActive = not self.db or not self.db.raw or not self.db.raw.disabledModules or not self.db.raw.disabledModules[currentProfile] or not self.db.raw.disabledModules[currentProfile][module.name] - local newActive = not self.db or not self.db.raw or not self.db.raw.disabledModules or not self.db.raw.disabledModules[newProfile] or not self.db.raw.disabledModules[newProfile][module.name] - if currentActive ~= newActive then - self:ToggleModuleActive(module) - if not self.db.raw.disabledModules then - self.db.raw.disabledModules = {} - end - if not self.db.raw.disabledModules[currentProfile] then - self.db.raw.disabledModules[currentProfile] = {} - end - self.db.raw.disabledModules[currentProfile][module.name] = not currentActive or nil - end - end - end -end - -local function activate(self, oldLib, oldDeactivate) - AceModuleCore = self - - if oldLib then - self.totalModules = oldLib.totalModules - end - if not self.totalModules then - self.totalModules = {} - end - - self.super.activate(self, oldLib, oldDeactivate) -end - -local function external(self, major, instance) - if major == "Compost-2.0" then - Compost = instance - elseif major == "AceEvent-2.0" then - AceEvent = instance - end -end - -AceLibrary:Register(AceModuleCore, MAJOR_VERSION, MINOR_VERSION, activate, nil, external) -AceModuleCore = AceLibrary(MAJOR_VERSION) +--[[ +Name: AceModuleCore-2.0 +Revision: $Rev: 17998 $ +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/AceModuleCore-2.0 +SVN: http://svn.wowace.com/root/trunk/Ace2/AceModuleCore-2.0 +Description: Mixin to provide a module system so that modules or plugins can + use an addon as its core. +Dependencies: AceLibrary, AceOO-2.0, AceAddon-2.0, AceEvent-2.0 (optional), Compost-2.0 (optional) +]] + +local MAJOR_VERSION = "AceModuleCore-2.0" +local MINOR_VERSION = "$Revision: 17998 $" + +if not AceLibrary then error(MAJOR_VERSION .. " requires AceLibrary") end +if not AceLibrary:IsNewVersion(MAJOR_VERSION, MINOR_VERSION) then return end + +if loadstring("return function(...) return ... end") and AceLibrary:HasInstance(MAJOR_VERSION) then return end -- lua51 check +if not AceLibrary:HasInstance("AceOO-2.0") then error(MAJOR_VERSION .. " requires AceOO-2.0") end + +local function safecall(func,a,b,c,d,e,f,g) + local success, err = pcall(func,a,b,c,d,e,f,g) + if not success then geterrorhandler()(err) end +end + +local table_setn +do + local version = GetBuildInfo() + if string.find(version, "^2%.") then + -- 2.0.0 + table_setn = function() end + else + table_setn = table.setn + end +end + +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) + for k in pairs(t) do + t[k] = nil + end + table_setn(t, 0) + list[t] = true + return nil + end +end + +local AceOO = AceLibrary:GetInstance("AceOO-2.0") +local AceModuleCore = AceOO.Mixin { + "NewModule", + "HasModule", + "GetModule", + "IsModule", + "IterateModules", + "SetModuleMixins", + "SetModuleClass", + "IsModuleActive", + "ToggleModuleActive" + } +local AceEvent + +local Compost = AceLibrary:HasInstance("Compost-2.0") and AceLibrary("Compost-2.0") + +local function getlibrary(lib) + if type(lib) == "string" then + return AceLibrary(lib) + else + return lib + end +end + +local tmp +function AceModuleCore:NewModule(name, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20) + if not self.modules then + AceModuleCore:error("CreatePrototype() must be called before attempting to create a new module.", 2) + end + AceModuleCore:argCheck(name, 2, "string") + if string.len(name) == 0 then + AceModuleCore:error("Bad argument #2 to `NewModule`, string must not be empty") + end + if self.modules[name] then + AceModuleCore:error("The module %q has already been registered", name) + end + + if not tmp then + tmp = {} + end + if a1 then table.insert(tmp, a1) + if a2 then table.insert(tmp, a2) + if a3 then table.insert(tmp, a3) + if a4 then table.insert(tmp, a4) + if a5 then table.insert(tmp, a5) + if a6 then table.insert(tmp, a6) + if a7 then table.insert(tmp, a7) + if a8 then table.insert(tmp, a8) + if a9 then table.insert(tmp, a9) + if a10 then table.insert(tmp, a10) + if a11 then table.insert(tmp, a11) + if a12 then table.insert(tmp, a12) + if a13 then table.insert(tmp, a13) + if a14 then table.insert(tmp, a14) + if a15 then table.insert(tmp, a15) + if a16 then table.insert(tmp, a16) + if a17 then table.insert(tmp, a17) + if a18 then table.insert(tmp, a18) + if a19 then table.insert(tmp, a19) + if a20 then table.insert(tmp, a20) + end end end end end end end end end end end end end end end end end end end end + for k,v in ipairs(tmp) do + tmp[k] = getlibrary(v) + end + + if self.moduleMixins then + for _,mixin in ipairs(self.moduleMixins) do + local exists = false + for _,v in ipairs(tmp) do + if mixin == v then + exists = true + break + end + end + if not exists then + table.insert(tmp, mixin) + end + end + end + + local module = AceOO.Classpool(self.moduleClass, unpack(tmp)):new(name) + self.modules[name] = module + module.name = name + module.title = name + + AceModuleCore.totalModules[module] = self + + if AceEvent then + AceEvent:TriggerEvent("Ace2_ModuleCreated", module) + end + + for k in pairs(tmp) do + tmp[k] = nil + end + table_setn(tmp, 0) + return module +end + +function AceModuleCore:HasModule(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20) + if a1 then if not self.modules[a1] then return false end + if a2 then if not self.modules[a2] then return false end + if a3 then if not self.modules[a3] then return false end + if a4 then if not self.modules[a4] then return false end + if a5 then if not self.modules[a5] then return false end + if a6 then if not self.modules[a6] then return false end + if a7 then if not self.modules[a7] then return false end + if a8 then if not self.modules[a8] then return false end + if a9 then if not self.modules[a9] then return false end + if a10 then if not self.modules[a10] then return false end + if a11 then if not self.modules[a11] then return false end + if a12 then if not self.modules[a12] then return false end + if a13 then if not self.modules[a13] then return false end + if a14 then if not self.modules[a14] then return false end + if a15 then if not self.modules[a15] then return false end + if a16 then if not self.modules[a16] then return false end + if a17 then if not self.modules[a17] then return false end + if a18 then if not self.modules[a18] then return false end + if a19 then if not self.modules[a19] then return false end + if a20 then if not self.modules[a20] then return false end + end end end end end end end end end end end end end end end end end end end end + + return true +end + +function AceModuleCore:GetModule(name) + if not self.modules then + AceModuleCore:error("Error initializing class. Please report error.") + end + if not self.modules[name] then + AceModuleCore:error("Cannot find module %q.", name) + end + return self.modules[name] +end + +function AceModuleCore:IsModule(module) + if self == AceModuleCore then + return AceModuleCore.totalModules[module] + else + for k,v in pairs(self.modules) do + if v == module then + return true + end + end + return false + end +end + +function AceModuleCore:IterateModules() + local t = new() + for k in pairs(self.modules) do + table.insert(t, k) + end + table.sort(t) + local i = 0 + return function() + i = i + 1 + local x = t[i] + if x then + return x, self.modules[x] + else + t = del(t) + return nil + end + end, nil, nil +end + +function AceModuleCore:SetModuleMixins(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20) + if self.moduleMixins then + AceModuleCore:error('Cannot call "SetModuleMixins" twice') + elseif not self.modules then + AceModuleCore:error("Error initializing class. Please report error.") + elseif next(self.modules) then + AceModuleCore:error('Cannot call "SetModuleMixins" after "NewModule" has been called.') + end + + self.moduleMixins = Compost and Compost:Acquire(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20) or {a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20} + for k,v in ipairs(self.moduleMixins) do + self.moduleMixins[k] = getlibrary(v) + end +end + +function AceModuleCore:SetModuleClass(class) + class = getlibrary(class) + AceModuleCore:assert(AceOO.inherits(class, AceOO.Class), "Bad argument #2 to `SetModuleClass' (Class expected)") + if not self.modules then + AceModuleCore:error("Error initializing class. Please report error.") + end + if self.customModuleClass then + AceModuleCore:error("Cannot call `SetModuleClass' twice.") + end + self.customModuleClass = true + self.moduleClass = class + self.modulePrototype = class.prototype +end + +function AceModuleCore:ToggleModuleActive(module, state) + AceModuleCore:argCheck(module, 2, "table", "string") + AceModuleCore:argCheck(state, 3, "nil", "boolean") + + if type(module) == "string" then + if not self:HasModule(module) then + AceModuleCore:error("Cannot find module %q", module) + end + module = self:GetModule(module) + else + if not self:IsModule(module) then + AceModuleCore:error("%q is not a module", module) + end + end + + local disable + if state == nil then + disable = self:IsModuleActive(module) + else + disable = not state + if disable ~= self:IsModuleActive(module) then + return + end + end + + if type(module.ToggleActive) == "function" then + return module:ToggleActive(not disable) + elseif AceOO.inherits(self, "AceDB-2.0") then + if not self.db or not self.db.raw then + AceModuleCore:error("Cannot toggle a module until `RegisterDB' has been called and `ADDON_LOADED' has been fireed.") + end + if type(self.db.raw.disabledModules) ~= "table" then + self.db.raw.disabledModules = Compost and Compost:Acquire() or {} + end + local _,profile = self:GetProfile() + if type(self.db.raw.disabledModules[profile]) ~= "table" then + self.db.raw.disabledModules[profile] = Compost and Compost:Acquire() or {} + end + if type(self.db.raw.disabledModules[profile][module.name]) ~= "table" then + self.db.raw.disabledModules[profile][module.name] = disable or nil + end + if not disable then + if not next(self.db.raw.disabledModules[profile]) then + if Compost then + Compost:Reclaim(self.db.raw.disabledModules[profile]) + end + self.db.raw.disabledModules[profile] = nil + end + if not next(self.db.raw.disabledModules) then + if Compost then + Compost:Reclaim(self.db.raw.disabledModules) + end + self.db.raw.disabledModules = nil + end + end + else + if type(self.disabledModules) ~= "table" then + self.disabledModules = Compost and Compost:Acquire() or {} + end + self.disabledModules[module.name] = disable or nil + end + if AceOO.inherits(module, "AceAddon-2.0") then + local AceAddon = AceLibrary("AceAddon-2.0") + if not AceAddon.addonsStarted[module] then + return + end + end + if not disable then + local current = module.class + while true do + if current == AceOO.Class then + break + end + if current.mixins then + for mixin in pairs(current.mixins) do + if type(mixin.OnEmbedEnable) == "function" then + safecall(mixin.OnEmbedEnable, mixin, module) + end + end + end + current = current.super + end + if type(module.OnEnable) == "function" then + safecall(module.OnEnable, module) + end + if AceEvent then + AceEvent:TriggerEvent("Ace2_AddonEnabled", module) + end + else + local current = module.class + while true do + if current == AceOO.Class then + break + end + if current.mixins then + for mixin in pairs(current.mixins) do + if type(mixin.OnEmbedDisable) == "function" then + safecall(mixin.OnEmbedDisable, mixin, module) + end + end + end + current = current.super + end + if type(module.OnDisable) == "function" then + safecall(module.OnDisable, module) + end + if AceEvent then + AceEvent:TriggerEvent("Ace2_AddonDisabled", module) + end + end + return not disable +end + +function AceModuleCore:IsModuleActive(module) + AceModuleCore:argCheck(module, 2, "table", "string") + + if AceModuleCore == self then + self:argCheck(module, 2, "table") + + local core = AceModuleCore.totalModules[module] + if not core then + self:error("Bad argument #2 to `IsModuleActive'. Not a module") + end + return core:IsModuleActive(module) + end + + if type(module) == "string" then + if not self:HasModule(module) then + AceModuleCore:error("Cannot find module %q", module) + end + module = self:GetModule(module) + else + if not self:IsModule(module) then + AceModuleCore:error("%q is not a module", module) + end + end + + if type(module.IsActive) == "function" then + return module:IsActive() + elseif AceOO.inherits(self, "AceDB-2.0") then + local _,profile = self:GetProfile() + return not self.db or not self.db.raw or not self.db.raw.disabledModules or not self.db.raw.disabledModules[profile] or not self.db.raw.disabledModules[profile][module.name] + else + return not self.disabledModules or not self.disabledModules[module.name] + end +end + +function AceModuleCore:OnInstanceInit(target) + if target.modules then + AceModuleCore:error("OnInstanceInit cannot be called twice") + end + target.modules = Compost and Compost:Acquire() or {} + + target.moduleClass = AceOO.Class("AceAddon-2.0") + target.modulePrototype = target.moduleClass.prototype +end + +AceModuleCore.OnManualEmbed = AceModuleCore.OnInstanceInit + +function AceModuleCore.OnEmbedProfileDisable(AceModuleCore, self, newProfile) + if not AceOO.inherits(self, "AceDB-2.0") then + return + end + local _,currentProfile = self:GetProfile() + for k, module in pairs(self.modules) do + if type(module.IsActive) == "function" or type(module.ToggleActive) == "function" then + -- continue + else + local currentActive = not self.db or not self.db.raw or not self.db.raw.disabledModules or not self.db.raw.disabledModules[currentProfile] or not self.db.raw.disabledModules[currentProfile][module.name] + local newActive = not self.db or not self.db.raw or not self.db.raw.disabledModules or not self.db.raw.disabledModules[newProfile] or not self.db.raw.disabledModules[newProfile][module.name] + if currentActive ~= newActive then + self:ToggleModuleActive(module) + if not self.db.raw.disabledModules then + self.db.raw.disabledModules = {} + end + if not self.db.raw.disabledModules[currentProfile] then + self.db.raw.disabledModules[currentProfile] = {} + end + self.db.raw.disabledModules[currentProfile][module.name] = not currentActive or nil + end + end + end +end + +local function activate(self, oldLib, oldDeactivate) + AceModuleCore = self + + if oldLib then + self.totalModules = oldLib.totalModules + end + if not self.totalModules then + self.totalModules = {} + end + + self.super.activate(self, oldLib, oldDeactivate) +end + +local function external(self, major, instance) + if major == "Compost-2.0" then + Compost = instance + elseif major == "AceEvent-2.0" then + AceEvent = instance + end +end + +AceLibrary:Register(AceModuleCore, MAJOR_VERSION, MINOR_VERSION, activate, nil, external) +AceModuleCore = AceLibrary(MAJOR_VERSION) diff --git a/Payload/Interface/Addons/nampowersettings/libs/AceOO-2.0/AceOO-2.0.lua b/Payload/Interface/Addons/nampowersettings/libs/AceOO-2.0/AceOO-2.0.lua index cd372b4..08d3cb8 100644 --- a/Payload/Interface/Addons/nampowersettings/libs/AceOO-2.0/AceOO-2.0.lua +++ b/Payload/Interface/Addons/nampowersettings/libs/AceOO-2.0/AceOO-2.0.lua @@ -1,1006 +1,1006 @@ ---[[ -Name: AceOO-2.0 -Revision: $Rev: 17638 $ -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 -]] - -local MAJOR_VERSION = "AceOO-2.0" -local MINOR_VERSION = "$Revision: 17639 $" - --- 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 loadstring("return function(...) return ... end") and AceLibrary:HasInstance(MAJOR_VERSION) then return end -- lua51 check -local table_setn -do - local version = GetBuildInfo() - if string.find(version, "^2%.") then - -- 2.0.0 - table_setn = function() end - else - table_setn = table.setn - end -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 string.rep('0', 8 - string.len(cap)) .. cap -end -local function getuid(t) - local mt = getmetatable(t) - setmetatable(t, nil) - local str = tostring(t) - setmetatable(t, mt) - local _,_,cap = string.find(str, '[^:]*: 0x(.*)$') - if cap then return pad(cap) end - _,_,cap = string.find(str, '[^:]*: (.*)$') - 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 - --- @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 (a1..a20) 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 new(obj, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, - a13, a14, a15, a16, a17, a18, a19, a20) - local t = {} - local uid = getuid(t) - local l = getlibrary - obj:init(t, l(a1), l(a2), l(a3), l(a4), l(a5), l(a6), l(a7), - l(a8), l(a9), l(a10), l(a11), l(a12), l(a13), - l(a14), l(a15), l(a16), l(a17), l(a18), l(a19), - l(a20)) - t.uid = uid - return t - end - - local function createnew(self, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, - a11, a12, a13, a14, a15, a16, a17, a18, - a19, a20) - local o = self.prototype - local l = getlibrary - return new(o, l(a1), l(a2), l(a3), l(a4), l(a5), l(a6), l(a7), - l(a8), l(a9), l(a10), l(a11), l(a12), l(a13), - l(a14), l(a15), l(a16), l(a17), l(a18), l(a19), - l(a20)) - end - - function Factory(obj, newobj, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, - a11, a12, a13, a14, a15, a16, a17, a18, - a19, a20) - local t = new(obj, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, - a13, a14, a15, a16, a17, a18, a19, a20) - 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 - if object.class then - current = object.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 = 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 = 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 = 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 (a1..a20) Arguments to pass to the object init function. --- @return The new object. --- --- @method Class init --- @brief Initialize a new class. --- @param parent Superclass. --- @param (a1..a20) 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, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, - a13, a14, a15, a16, a17, a18, a19, a20) - 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(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, - a13, a14, a15, a16, a17, a18, a19, a20) - 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, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, - a13, a14, a15, a16, a17, a18, a19, a20) - return self:new(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, - a13, a14, a15, a16, a17, a18, a19, a20) - end, - } - function Class:init(newclass, parent, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14, a15, a16, - a17, a18, a19, a20) - parent = parent or self - - local total - - if parent.class then - total = { - parent, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14, a15, a16, - a17, a18, a19, a20 - } - parent = self - else - total = { - a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14, a15, a16, - a17, a18, a19, a20 - } - 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 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 newclass.interfaces then - for interface in pairs(parent.interfaces) do - newclass.interfaces[interface] = true - end - else - newclass.interfaces = parent.interfaces - end - end - for k in pairs(total) do - total[k] = nil - end - table_setn(total, 0) - - 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(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, - a12, a13, a14, a15, a16, a17, a18, a19, a20) - local x = ClassFactory:new(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, - a12, a13, a14, a15, a16, a17, a18, a19, a20) - 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) - 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 - if not target.modules then - self:OnManualEmbed(target) - end - 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, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14, a15, a16, - a17, a18, a19, a20) - 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 = table.getn(export) - for i = 1, num do - local v = export[i] - export[i] = nil - export[v] = true - end - table_setn(export, 0) - local interfaces - if a1 then - local l = getlibrary - interfaces = { l(a1), l(a2), l(a3), l(a4), l(a5), l(a6), l(a7), l(a8), - l(a9), l(a10), l(a11), l(a12), l(a13), l(a14), l(a15), l(a16), - l(a17), l(a18), l(a19), l(a20) } - for _,v in ipairs(interfaces) do - if not v.class or not inherits(v, Interface) then - AceOO:error("Mixins can inherit only from interfaces") - end - end - local num = table.getn(interfaces) - for i = 1, num do - local v = interfaces[i] - interfaces[i] = nil - interfaces[v] = true - end - table_setn(interfaces, 0) - 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 (a1..a20) Superinterfaces -do - Interface = Class() - function Interface:ToString() - if self.GetLibraryVersion then - return (self:GetLibraryVersion()) - else - return 'Instance' - end - end - function Interface.prototype:init(interface, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20) - 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 - local l = getlibrary - a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20 = l(a1), l(a2), l(a3), l(a4), l(a5), l(a6), l(a7), l(a8), l(a9), l(a10), l(a11), l(a12), l(a13), l(a14), l(a15), l(a16), l(a17), l(a18), l(a19), l(a20) - if a1 then - self.superinterfaces = {a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20} - for k,v in ipairs(self.superinterfaces) do - if not inherits(v, Interface) or not v.class then - AceOO:error('Cannot provide a non-Interface to inherit from') - end - end - local num = table.getn(self.superinterfaces) - for i = 1, num do - local v = self.superinterfaces[i] - self.superinterfaces[i] = nil - self.superinterfaces[v] = true - end - table_setn(self.superinterfaces, 0) - 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, m1, m2, m3, m4, m5, m6, m7, m8, m9, - m10, m11, m12, m13, m14, m15, m16, m17, m18, m19, m20) - if not t then t = {} end - 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 - if m1 then if m1.uid then table.insert(t, m1.uid) else AceOO:error("%s is not an appropriate mixin", ts(m1)) end - if m2 then if m2.uid then table.insert(t, m2.uid) else AceOO:error("%s is not an appropriate mixin", ts(m2)) end - if m3 then if m3.uid then table.insert(t, m3.uid) else AceOO:error("%s is not an appropriate mixin", ts(m3)) end - if m4 then if m4.uid then table.insert(t, m4.uid) else AceOO:error("%s is not an appropriate mixin", ts(m4)) end - if m5 then if m5.uid then table.insert(t, m5.uid) else AceOO:error("%s is not an appropriate mixin", ts(m5)) end - if m6 then if m6.uid then table.insert(t, m6.uid) else AceOO:error("%s is not an appropriate mixin", ts(m6)) end - if m7 then if m7.uid then table.insert(t, m7.uid) else AceOO:error("%s is not an appropriate mixin", ts(m7)) end - if m8 then if m8.uid then table.insert(t, m8.uid) else AceOO:error("%s is not an appropriate mixin", ts(m8)) end - if m9 then if m9.uid then table.insert(t, m9.uid) else AceOO:error("%s is not an appropriate mixin", ts(m9)) end - if m10 then if m10.uid then table.insert(t, m10.uid) else AceOO:error("%s is not an appropriate mixin", ts(m10)) end - if m11 then if m11.uid then table.insert(t, m11.uid) else AceOO:error("%s is not an appropriate mixin", ts(m11)) end - if m12 then if m12.uid then table.insert(t, m12.uid) else AceOO:error("%s is not an appropriate mixin", ts(m12)) end - if m13 then if m13.uid then table.insert(t, m13.uid) else AceOO:error("%s is not an appropriate mixin", ts(m13)) end - if m14 then if m14.uid then table.insert(t, m14.uid) else AceOO:error("%s is not an appropriate mixin", ts(m14)) end - if m15 then if m15.uid then table.insert(t, m15.uid) else AceOO:error("%s is not an appropriate mixin", ts(m15)) end - if m16 then if m16.uid then table.insert(t, m16.uid) else AceOO:error("%s is not an appropriate mixin", ts(m16)) end - if m17 then if m17.uid then table.insert(t, m17.uid) else AceOO:error("%s is not an appropriate mixin", ts(m17)) end - if m18 then if m18.uid then table.insert(t, m18.uid) else AceOO:error("%s is not an appropriate mixin", ts(m18)) end - if m19 then if m19.uid then table.insert(t, m19.uid) else AceOO:error("%s is not an appropriate mixin", ts(m19)) end - if m20 then if m20.uid then table.insert(t, m20.uid) else AceOO:error("%s is not an appropriate mixin", ts(m20)) end - end end end end end end end end end end end end end end end end end end end end end - table.sort(t) - local uid = table.concat(t, '') - for k in pairs(t) do t[k] = nil end - table_setn(t, 0) - return uid - end - local classmeta - function Classpool(sc, m1, m2, m3, m4, m5, m6, m7, m8, m9, - m10, m11, m12, m13, m14, m15, m16, - m17, m18, m19, m20) - local l = getlibrary - sc, m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11, m12, m13, m14, m15, m16, m17, m18, m19, m20 = l(sc), l(m1), l(m2), l(m3), l(m4), l(m5), l(m6), l(m7), l(m8), l(m9), l(m10), l(m11), l(m12), l(m13), l(m14), l(m15), l(m16), l(m17), l(m18), l(m19), l(m20) - if sc and sc.class then - sc, m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11, m12, m13, m14, m15, m16, m17, m18, m19, m20 = Class, sc, m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11, m12, m13, m14, m15, m16, m17, m18, m19 - end - sc = sc or Class - local key = getcomplexuid(sc, m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11, m12, m13, m14, m15, m16, m17, m18, m19, m20) - if not pool[key] then - local class = Class(sc, m1, m2, m3, m4, m5, m6, m7, m8, m9, - m10, m11, m12, m13, m14, m15, m16, m17, - m18, m19, m20) - 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) +--[[ +Name: AceOO-2.0 +Revision: $Rev: 17638 $ +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 +]] + +local MAJOR_VERSION = "AceOO-2.0" +local MINOR_VERSION = "$Revision: 17639 $" + +-- 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 loadstring("return function(...) return ... end") and AceLibrary:HasInstance(MAJOR_VERSION) then return end -- lua51 check +local table_setn +do + local version = GetBuildInfo() + if string.find(version, "^2%.") then + -- 2.0.0 + table_setn = function() end + else + table_setn = table.setn + end +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 string.rep('0', 8 - string.len(cap)) .. cap +end +local function getuid(t) + local mt = getmetatable(t) + setmetatable(t, nil) + local str = tostring(t) + setmetatable(t, mt) + local _,_,cap = string.find(str, '[^:]*: 0x(.*)$') + if cap then return pad(cap) end + _,_,cap = string.find(str, '[^:]*: (.*)$') + 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 + +-- @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 (a1..a20) 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 new(obj, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, + a13, a14, a15, a16, a17, a18, a19, a20) + local t = {} + local uid = getuid(t) + local l = getlibrary + obj:init(t, l(a1), l(a2), l(a3), l(a4), l(a5), l(a6), l(a7), + l(a8), l(a9), l(a10), l(a11), l(a12), l(a13), + l(a14), l(a15), l(a16), l(a17), l(a18), l(a19), + l(a20)) + t.uid = uid + return t + end + + local function createnew(self, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, + a11, a12, a13, a14, a15, a16, a17, a18, + a19, a20) + local o = self.prototype + local l = getlibrary + return new(o, l(a1), l(a2), l(a3), l(a4), l(a5), l(a6), l(a7), + l(a8), l(a9), l(a10), l(a11), l(a12), l(a13), + l(a14), l(a15), l(a16), l(a17), l(a18), l(a19), + l(a20)) + end + + function Factory(obj, newobj, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, + a11, a12, a13, a14, a15, a16, a17, a18, + a19, a20) + local t = new(obj, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, + a13, a14, a15, a16, a17, a18, a19, a20) + 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 + if object.class then + current = object.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 = 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 = 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 = 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 (a1..a20) Arguments to pass to the object init function. +-- @return The new object. +-- +-- @method Class init +-- @brief Initialize a new class. +-- @param parent Superclass. +-- @param (a1..a20) 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, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, + a13, a14, a15, a16, a17, a18, a19, a20) + 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(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, + a13, a14, a15, a16, a17, a18, a19, a20) + 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, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, + a13, a14, a15, a16, a17, a18, a19, a20) + return self:new(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, + a13, a14, a15, a16, a17, a18, a19, a20) + end, + } + function Class:init(newclass, parent, a1, a2, a3, a4, a5, a6, a7, a8, a9, + a10, a11, a12, a13, a14, a15, a16, + a17, a18, a19, a20) + parent = parent or self + + local total + + if parent.class then + total = { + parent, a1, a2, a3, a4, a5, a6, a7, a8, a9, + a10, a11, a12, a13, a14, a15, a16, + a17, a18, a19, a20 + } + parent = self + else + total = { + a1, a2, a3, a4, a5, a6, a7, a8, a9, + a10, a11, a12, a13, a14, a15, a16, + a17, a18, a19, a20 + } + 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 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 newclass.interfaces then + for interface in pairs(parent.interfaces) do + newclass.interfaces[interface] = true + end + else + newclass.interfaces = parent.interfaces + end + end + for k in pairs(total) do + total[k] = nil + end + table_setn(total, 0) + + 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(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, + a12, a13, a14, a15, a16, a17, a18, a19, a20) + local x = ClassFactory:new(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, + a12, a13, a14, a15, a16, a17, a18, a19, a20) + 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) + 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 + if not target.modules then + self:OnManualEmbed(target) + end + 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, a1, a2, a3, a4, a5, a6, a7, a8, a9, + a10, a11, a12, a13, a14, a15, a16, + a17, a18, a19, a20) + 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 = table.getn(export) + for i = 1, num do + local v = export[i] + export[i] = nil + export[v] = true + end + table_setn(export, 0) + local interfaces + if a1 then + local l = getlibrary + interfaces = { l(a1), l(a2), l(a3), l(a4), l(a5), l(a6), l(a7), l(a8), + l(a9), l(a10), l(a11), l(a12), l(a13), l(a14), l(a15), l(a16), + l(a17), l(a18), l(a19), l(a20) } + for _,v in ipairs(interfaces) do + if not v.class or not inherits(v, Interface) then + AceOO:error("Mixins can inherit only from interfaces") + end + end + local num = table.getn(interfaces) + for i = 1, num do + local v = interfaces[i] + interfaces[i] = nil + interfaces[v] = true + end + table_setn(interfaces, 0) + 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 (a1..a20) Superinterfaces +do + Interface = Class() + function Interface:ToString() + if self.GetLibraryVersion then + return (self:GetLibraryVersion()) + else + return 'Instance' + end + end + function Interface.prototype:init(interface, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20) + 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 + local l = getlibrary + a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20 = l(a1), l(a2), l(a3), l(a4), l(a5), l(a6), l(a7), l(a8), l(a9), l(a10), l(a11), l(a12), l(a13), l(a14), l(a15), l(a16), l(a17), l(a18), l(a19), l(a20) + if a1 then + self.superinterfaces = {a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20} + for k,v in ipairs(self.superinterfaces) do + if not inherits(v, Interface) or not v.class then + AceOO:error('Cannot provide a non-Interface to inherit from') + end + end + local num = table.getn(self.superinterfaces) + for i = 1, num do + local v = self.superinterfaces[i] + self.superinterfaces[i] = nil + self.superinterfaces[v] = true + end + table_setn(self.superinterfaces, 0) + 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, m1, m2, m3, m4, m5, m6, m7, m8, m9, + m10, m11, m12, m13, m14, m15, m16, m17, m18, m19, m20) + if not t then t = {} end + 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 + if m1 then if m1.uid then table.insert(t, m1.uid) else AceOO:error("%s is not an appropriate mixin", ts(m1)) end + if m2 then if m2.uid then table.insert(t, m2.uid) else AceOO:error("%s is not an appropriate mixin", ts(m2)) end + if m3 then if m3.uid then table.insert(t, m3.uid) else AceOO:error("%s is not an appropriate mixin", ts(m3)) end + if m4 then if m4.uid then table.insert(t, m4.uid) else AceOO:error("%s is not an appropriate mixin", ts(m4)) end + if m5 then if m5.uid then table.insert(t, m5.uid) else AceOO:error("%s is not an appropriate mixin", ts(m5)) end + if m6 then if m6.uid then table.insert(t, m6.uid) else AceOO:error("%s is not an appropriate mixin", ts(m6)) end + if m7 then if m7.uid then table.insert(t, m7.uid) else AceOO:error("%s is not an appropriate mixin", ts(m7)) end + if m8 then if m8.uid then table.insert(t, m8.uid) else AceOO:error("%s is not an appropriate mixin", ts(m8)) end + if m9 then if m9.uid then table.insert(t, m9.uid) else AceOO:error("%s is not an appropriate mixin", ts(m9)) end + if m10 then if m10.uid then table.insert(t, m10.uid) else AceOO:error("%s is not an appropriate mixin", ts(m10)) end + if m11 then if m11.uid then table.insert(t, m11.uid) else AceOO:error("%s is not an appropriate mixin", ts(m11)) end + if m12 then if m12.uid then table.insert(t, m12.uid) else AceOO:error("%s is not an appropriate mixin", ts(m12)) end + if m13 then if m13.uid then table.insert(t, m13.uid) else AceOO:error("%s is not an appropriate mixin", ts(m13)) end + if m14 then if m14.uid then table.insert(t, m14.uid) else AceOO:error("%s is not an appropriate mixin", ts(m14)) end + if m15 then if m15.uid then table.insert(t, m15.uid) else AceOO:error("%s is not an appropriate mixin", ts(m15)) end + if m16 then if m16.uid then table.insert(t, m16.uid) else AceOO:error("%s is not an appropriate mixin", ts(m16)) end + if m17 then if m17.uid then table.insert(t, m17.uid) else AceOO:error("%s is not an appropriate mixin", ts(m17)) end + if m18 then if m18.uid then table.insert(t, m18.uid) else AceOO:error("%s is not an appropriate mixin", ts(m18)) end + if m19 then if m19.uid then table.insert(t, m19.uid) else AceOO:error("%s is not an appropriate mixin", ts(m19)) end + if m20 then if m20.uid then table.insert(t, m20.uid) else AceOO:error("%s is not an appropriate mixin", ts(m20)) end + end end end end end end end end end end end end end end end end end end end end end + table.sort(t) + local uid = table.concat(t, '') + for k in pairs(t) do t[k] = nil end + table_setn(t, 0) + return uid + end + local classmeta + function Classpool(sc, m1, m2, m3, m4, m5, m6, m7, m8, m9, + m10, m11, m12, m13, m14, m15, m16, + m17, m18, m19, m20) + local l = getlibrary + sc, m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11, m12, m13, m14, m15, m16, m17, m18, m19, m20 = l(sc), l(m1), l(m2), l(m3), l(m4), l(m5), l(m6), l(m7), l(m8), l(m9), l(m10), l(m11), l(m12), l(m13), l(m14), l(m15), l(m16), l(m17), l(m18), l(m19), l(m20) + if sc and sc.class then + sc, m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11, m12, m13, m14, m15, m16, m17, m18, m19, m20 = Class, sc, m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11, m12, m13, m14, m15, m16, m17, m18, m19 + end + sc = sc or Class + local key = getcomplexuid(sc, m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11, m12, m13, m14, m15, m16, m17, m18, m19, m20) + if not pool[key] then + local class = Class(sc, m1, m2, m3, m4, m5, m6, m7, m8, m9, + m10, m11, m12, m13, m14, m15, m16, m17, + m18, m19, m20) + 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) diff --git a/Payload/Interface/Addons/nampowersettings/libs/Dewdrop/Dewdrop-2.0.lua b/Payload/Interface/Addons/nampowersettings/libs/Dewdrop/Dewdrop-2.0.lua index bc72ba6..2492e8b 100644 --- a/Payload/Interface/Addons/nampowersettings/libs/Dewdrop/Dewdrop-2.0.lua +++ b/Payload/Interface/Addons/nampowersettings/libs/Dewdrop/Dewdrop-2.0.lua @@ -1,2602 +1,2602 @@ ---[[ -Name: Dewdrop-2.0 -Revision: $Rev: 15987 $ -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 -]] - -local MAJOR_VERSION = "Dewdrop-2.0" -local MINOR_VERSION = "$Revision: 15987 $" - -if not AceLibrary then error(MAJOR_VERSION .. " requires AceLibrary") end -if not AceLibrary:IsNewVersion(MAJOR_VERSION, MINOR_VERSION) then return end - -local Dewdrop = {} - -local lua51 = loadstring("return function(...) return ... end") and true or false - -local table_setn = lua51 and function() end or table.setn - -local function new(k1, v1, k2, v2, k3, v3, k4, v4, k5, v5, k6, v6, k7, v7, k8, v8, k9, v9, k10, v10, k11, v11, k12, v12, k13, v13, k14, v14, k15, v15, k16, v16, k17, v17, k18, v18, k19, v19, k20, v20) - local t = {} - if k1 then t[k1] = v1 - if k2 then t[k2] = v2 - if k3 then t[k3] = v3 - if k4 then t[k4] = v4 - if k5 then t[k5] = v5 - if k6 then t[k6] = v6 - if k7 then t[k7] = v7 - if k8 then t[k8] = v8 - if k9 then t[k9] = v9 - if k10 then t[k10] = v10 - if k11 then t[k11] = v11 - if k12 then t[k12] = v12 - if k13 then t[k13] = v13 - if k14 then t[k14] = v14 - if k15 then t[k15] = v15 - if k16 then t[k16] = v16 - if k17 then t[k17] = v17 - if k18 then t[k18] = v18 - if k19 then t[k19] = v19 - if k20 then t[k20] = v20 - end end end end end end end end end end end end end end end end end end end end - return t -end -if lua51 then - new = loadstring("return function(...) local t = {}; for i = 1, select('#', ...), 2 do if select(i, ...) then t[select(i, ...)] = select(i+1, ...); else break; end; end; return t; end")() -end - -local tmp -do - local t = {} - function tmp(k1, v1, k2, v2, k3, v3, k4, v4, k5, v5, k6, v6, k7, v7, k8, v8, k9, v9, k10, v10, k11, v11, k12, v12, k13, v13, k14, v14, k15, v15, k16, v16, k17, v17, k18, v18, k19, v19, k20, v20) - for k in pairs(t) do - t[k] = nil - end - if type(k1) == "table" then - for k,v in pairs(k1) do - t[k] = v - end - else - if k1 then t[k1] = v1 - if k2 then t[k2] = v2 - if k3 then t[k3] = v3 - if k4 then t[k4] = v4 - if k5 then t[k5] = v5 - if k6 then t[k6] = v6 - if k7 then t[k7] = v7 - if k8 then t[k8] = v8 - if k9 then t[k9] = v9 - if k10 then t[k10] = v10 - if k11 then t[k11] = v11 - if k12 then t[k12] = v12 - if k13 then t[k13] = v13 - if k14 then t[k14] = v14 - if k15 then t[k15] = v15 - if k16 then t[k16] = v16 - if k17 then t[k17] = v17 - if k18 then t[k18] = v18 - if k19 then t[k19] = v19 - if k20 then t[k20] = v20 - end end end end end end end end end end end end end end end end end end end end - end - return t - end - if lua51 then - tmp = loadstring("local t = {}; return function(...) for k in pairs(t) do t[k] = nil end; for i = 1, select('#', ...), 2 do if select(i, ...) then t[select(i, ...)] = select(i+1, ...) else break; end; end; return t; end")() - end -end -local tmp2 -do - local t = {} - function tmp2(k1, v1, k2, v2, k3, v3, k4, v4, k5, v5, k6, v6, k7, v7, k8, v8, k9, v9, k10, v10, k11, v11, k12, v12, k13, v13, k14, v14, k15, v15, k16, v16, k17, v17, k18, v18, k19, v19, k20, v20) - for k in pairs(t) do - t[k] = nil - end - if k1 then t[k1] = v1 - if k2 then t[k2] = v2 - if k3 then t[k3] = v3 - if k4 then t[k4] = v4 - if k5 then t[k5] = v5 - if k6 then t[k6] = v6 - if k7 then t[k7] = v7 - if k8 then t[k8] = v8 - if k9 then t[k9] = v9 - if k10 then t[k10] = v10 - if k11 then t[k11] = v11 - if k12 then t[k12] = v12 - if k13 then t[k13] = v13 - if k14 then t[k14] = v14 - if k15 then t[k15] = v15 - if k16 then t[k16] = v16 - if k17 then t[k17] = v17 - if k18 then t[k18] = v18 - if k19 then t[k19] = v19 - if k20 then t[k20] = v20 - end end end end end end end end end end end end end end end end end end end end - return t - end - if lua51 then - tmp2 = loadstring("local t = {}; return function(...) for k in pairs(t) do t[k] = nil end; for i = 1, select('#', ...), 2 do if select(i, ...) then t[select(i, ...)] = select(i+1, ...) else break; end; end; return t; end")() - 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, levelNum) - for i = levelNum, table.getn(levels) 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, arg1) - for _,level in ipairs(levels) do - if level.count then - level.count = level.count - arg1 - if level.count < 0 then - level.count = nil - self:Close(level.num) - 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 sliderFrame -local editBoxFrame - -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 table.getn(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() - local this = this - 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 - 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(this.tooltipArg1, this.tooltipArg2, this.tooltipArg3, this.tooltipArg4) - GameTooltip:Show() - end - end) - button:SetScript("OnLeave", function() - highlight:Hide() - button.radioHighlight:Hide() - if this.level then - StartCounting(self, this.level.num) - end - GameTooltip:Hide() - end) - button:SetScript("OnClick", function() - if not this.disabled then - if this.hasColorSwatch then - local func = button.colorFunc - local a1,a2,a3,a4 = button.colorArg1, button.colorArg2, button.colorArg3, button.colorArg4 - local hasOpacity = this.hasOpacity - ColorPickerFrame.func = function() - if func then - local r,g,b = ColorPickerFrame:GetColorRGB() - local a = hasOpacity and 1 - OpacitySliderFrame:GetValue() or nil - if a1 == nil then - func(r, g, b, a) - elseif a2 == nil then - func(a1, r, g, b, a) - elseif a3 == nil then - func(a1, a2, r, g, b, a) - elseif a4 == nil then - func(a1, a2, a3, r, g, b, a) - else - func(a1, a2, a3, a4, r, g, b, a) - end - 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 a1 == nil then - func(r, g, b, a) - elseif a2 == nil then - func(a1, r, g, b, a) - elseif a3 == nil then - func(a1, a2, r, g, b, a) - else - func(a1, a2, a3, r, g, b, a) - end - end - self:Close(1) - ShowUIPanel(ColorPickerFrame) - elseif this.func then - local level = button.level - if type(this.func) == "string" then - self:assert(type(this.arg1[this.func]) == "function", "Cannot call method " .. this.func) - this.arg1[this.func](this.arg1, this.arg2, this.arg3, this.arg4) - else - this.func(this.arg1, this.arg2, this.arg3, this.arg4) - end - if this.closeWhenClicked then - self:Close() - elseif level:IsShown() then - for i = 1, level.num do - Refresh(self, levels[i]) - 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 = buttons[table.getn(buttons)] - table.remove(buttons, table.getn(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 table.getn(level.buttons) == 0 then - button:SetPoint("TOP", level, "TOP", 0, -10) - else - button:SetPoint("TOP", level.buttons[table.getn(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 = table.getn(levels) + 1, level, -1 do - local i = i - numLevels = numLevels + 1 - local frame = CreateFrame("Button", "Dewdrop20Level" .. numLevels, nil) - if i == 1 then - local old_CloseWindows = CloseWindows - function CloseWindows(ignoreCenter) - local found = old_CloseWindows(ignoreCenter) - 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() - 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 checkValidate(validateFunc, func, arg1, arg2, arg3) - local text - if arg3 ~= nil then - text = arg3 - elseif arg2 ~= nil then - text = arg2 - else - text = arg1 - end - if not validateFunc(text) then - DEFAULT_CHAT_FRAME:AddMessage("|cffffff7fValidation error: [|r" .. tostring(text) .. "|cffffff7f]|r") - else - func(arg1, arg2, arg3) - 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 string.len(options.desc) == 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 string.len(options.cmdName) == 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 string.len(options.guiName) == 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 string.len(options.name) == 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 > table.getn(t) then - return '"validate" numeric keys must be indexed properly. >= 1 and <= table.getn', 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 - 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 - 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) ~= "string" then - return '"args" keys must be strings', position - elseif string.find(k, "%s") then - return string.format('"args" keys must not include spaces. %q is not appropriate.', k), position - elseif string.len(k) == 0 then - return '"args" keys must not be 0-length strings.', position - 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 - 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 - -function Dewdrop:FeedAceOptionsTable(options, difference) - self:argCheck(options, 2, "table") - self:argCheck(difference, 3, "nil", "number") - self:assert(currentLevel, "Cannot call `FeedAceOptionsTable' outside of a Dewdrop declaration") - 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] - self:assert(level, "Improper level given") - if not values then - values = {} - else - for k,v in pairs(values) do - values[k] = nil - end - table_setn(values, 0) - 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 table.getn(values) > 0 do - passTable = options.pass and current 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 - for k in pairs(options.args) do - table.insert(values, k) - end - 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 string.upper(alpha_name) < string.upper(bravo_name) - 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 = table.getn(values) >= 1 and (options.args[values[1]].order or 100) > 0 and (options.args[values[table.getn(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 - hidden = hidden() - elseif type(hidden) == "string" then - hidden = handler[hidden](handler) - end - if not hidden then - if type(disabled) == "function" then - disabled = disabled() - elseif type(disabled) == "string" then - disabled = handler[disabled](handler) - 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 or 0 - local iconCoordRight = v.iconCoordRight or 1 - local iconCoordBottom = v.iconCoordBottom or 0 - local iconCoordTop = v.iconCoordTop or 1 - local tooltipTitle, tooltipText - tooltipTitle = name - if name ~= desc then - tooltipText = desc - end - if v.type == "toggle" then - local checked - if type(v.get) == "function" then - checked = v.get(passValue) - else - if not handler[v.get] then - Dewdrop:error("Handler %q not available", v.get) - end - checked = handler[v.get](handler, passValue) - end - local func, arg1, arg2, arg3 - if type(v.set) == "function" then - func = v.set - if passValue ~= nil then - arg1 = passValue - arg2 = not checked - else - arg1 = not checked - end - else - if not handler[v.set] then - Dewdrop:error("Handler %q not available", v.set) - end - func = handler[v.set] - arg1 = handler - if passValue ~= nil then - arg2 = passValue - arg3 = not checked - else - arg2 = not checked - end - end - if v.guiNameIsMap then - checked = checked and true or false - name = string.gsub(tostring(v.map and v.map[checked]), "|c%x%x%x%x%x%x%x%x(.-)|r", "%1") - checked = 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 - if type(v.func) == "function" then - func = v.func - arg1 = passValue - else - if not handler[v.func] then - Dewdrop:error("Handler %q not available", v.func) - end - func = handler[v.func] - arg1 = handler - arg2 = passValue - end - self:AddLine( - 'text', name, - 'checked', checked, - 'func', func, - 'arg1', arg1, - 'arg2', arg2, - '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.get) == "function" then - sliderValue = v.get(passValue) - else - if not handler[v.get] then - Dewdrop:error("Handler %q not available", v.get) - end - sliderValue = handler[v.get](handler, passValue) - end - local sliderFunc, sliderArg1, sliderArg2 - if type(v.set) == "function" then - sliderFunc = v.set - sliderArg1 = passValue - else - if not handler[v.set] then - Dewdrop:error("Handler %q not available", v.set) - end - sliderFunc = handler[v.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.get) == "function" then - r,g,b,a = v.get(passValue) - else - if not handler[v.get] then - Dewdrop:error("Handler %q not available", v.get) - end - r,g,b,a = handler[v.get](handler, passValue) - end - local colorFunc, colorArg1, colorArg2 - if type(v.set) == "function" then - colorFunc = v.set - colorArg1 = passValue - else - if not handler[v.set] then - Dewdrop:error("Handler %q not available", v.set) - end - colorFunc = handler[v.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.get) == "function" then - editBoxText = v.get(passValue) - elseif v.get == false then - editBoxText = nil - else - if not handler[v.get] then - Dewdrop:error("Handler %q not available", v.get) - end - editBoxText = handler[v.get](handler, passValue) - end - local editBoxFunc, editBoxArg1, editBoxArg2 - if type(v.set) == "function" then - editBoxFunc = v.set - editBoxArg1 = passValue - else - if not handler[v.set] then - Dewdrop:error("Handler %q not available", v.set) - end - editBoxFunc = handler[v.set] - editBoxArg1 = handler - editBoxArg2 = passValue - end - - local editBoxValidateFunc, editBoxValidateArg1 - - if v.validate 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 - 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, - '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 - if type(options.get) == "function" then - current = options.get(passValue) - elseif options.get ~= false then - if not handler[options.get] then - Dewdrop:error("Handler %q not available", options.get) - end - current = handler[options.get](handler, passValue) - 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] < othersort_validate[bravo] - 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 - if type(options.set) == "function" then - func = options.set - if passValue ~= nil then - arg1 = passValue - arg2 = k - else - arg1 = k - end - else - if not handler[options.set] then - Dewdrop:error("Handler %q not available", options.set) - end - func = handler[options.set] - arg1 = handler - if passValue ~= nil then - arg2 = passValue - arg3 = k - else - arg2 = k - end - end - local checked = (k == current or (type(k) == "string" and type(current) == "string" and string.lower(k) == string.lower(current))) - self:AddLine( - 'text', v, - 'func', not checked and func or nil, - 'arg1', not checked and arg1 or nil, - 'arg2', not checked and arg2 or nil, - 'arg3', not checked and arg3 or nil, - 'isRadio', true, - 'checked', checked, - 'tooltipTitle', options.guiName or options.name, - 'tooltipText', v - ) - end - for k in pairs(values) do - values[k] = nil - end - table_setn(values, 0) - 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 string.find(name, '^table:') then - name = string.gsub(name, "|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, - '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 then - if 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 a1,a2,a3,a4 = sliderFrame.parent.sliderArg1, sliderFrame.parent.sliderArg2, sliderFrame.parent.sliderArg3, sliderFrame.parent.sliderArg4 - 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 - local text - if a1 == nil then - text = sliderFrame.parent.sliderFunc(value) - elseif a2 == nil then - text = sliderFrame.parent.sliderFunc(a1, value) - elseif a3 == nil then - text = sliderFrame.parent.sliderFunc(a1, a2, value) - elseif a4 == nil then - text = sliderFrame.parent.sliderFunc(a1, a2, a3, value) - else - text = sliderFrame.parent.sliderFunc(a1, a2, a3, a4, value) - end - if text then - sliderFrame.currentText:SetText(text) - done = true - end - 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) - end) - sliderFrame:SetScript("OnLeave", function() - StartCounting(self, sliderFrame.level) - end) - slider:SetScript("OnMouseDown", function() - sliderFrame.mouseDown = true - end) - slider:SetScript("OnMouseUp", function() - sliderFrame.mouseDown = false - if changed and not inside then - local parent = sliderFrame.parent - for i = 1, sliderFrame.level - 1 do - Refresh(self, levels[i]) - end - OpenSlider(self, parent) - end - end) - slider:SetScript("OnEnter", function() - inside = true - StopCounting(self, sliderFrame.level) - end) - slider:SetScript("OnLeave", function() - inside = false - StartCounting(self, sliderFrame.level) - if changed and not sliderFrame.mouseDown then - local parent = sliderFrame.parent - for i = 1, sliderFrame.level - 1 do - Refresh(self, levels[i]) - end - OpenSlider(self, parent) - 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) - end - - 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 - local a1,a2,a3,a4 = parent.sliderArg1, parent.sliderArg2, parent.sliderArg3, parent.sliderArg4 - if a1 == nil then - text = parent.sliderFunc(parent.sliderValue) - elseif a2 == nil then - text = parent.sliderFunc(a1, parent.sliderValue) - elseif a3 == nil then - text = parent.sliderFunc(a1, a2, parent.sliderValue) - elseif a4 == nil then - text = parent.sliderFunc(a1, a2, a3, parent.sliderValue) - else - text = parent.sliderFunc(a1, a2, a3, a4, parent.sliderValue) - end - 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 - - 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 -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: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 a1,a2,a3,a4 = editBoxFrame.parent.editBoxValidateArg1, editBoxFrame.parent.editBoxValidateArg2, editBoxFrame.parent.editBoxValidateArg3, editBoxFrame.parent.editBoxValidateArg4 - - local result - if a1 == nil then - result = editBoxFrame.parent.editBoxValidateFunc(editBox:GetText() or "") - elseif a2 == nil then - result = editBoxFrame.parent.editBoxValidateFunc(a1, editBox:GetText() or "") - elseif a3 == nil then - result = editBoxFrame.parent.editBoxValidateFunc(a1, a2, editBox:GetText() or "") - elseif a4 == nil then - result = editBoxFrame.parent.editBoxValidateFunc(a1, a2, a3, editBox:GetText() or "") - else - result = editBoxFrame.parent.editBoxValidateFunc(a1, a2, a3, a4, editBox:GetText() or "") - end - if not result then - message("Validation error: [" .. tostring(text) .. "]") - return - end - end - if editBoxFrame.parent and editBoxFrame.parent.editBoxFunc then - local a1,a2,a3,a4 = editBoxFrame.parent.editBoxArg1, editBoxFrame.parent.editBoxArg2, editBoxFrame.parent.editBoxArg3, editBoxFrame.parent.editBoxArg4 - if a1 == nil then - editBoxFrame.parent.editBoxFunc(editBox:GetText() or "") - elseif a2 == nil then - editBoxFrame.parent.editBoxFunc(a1, editBox:GetText() or "") - elseif a3 == nil then - editBoxFrame.parent.editBoxFunc(a1, a2, editBox:GetText() or "") - elseif a4 == nil then - editBoxFrame.parent.editBoxFunc(a1, a2, a3, editBox:GetText() or "") - else - editBoxFrame.parent.editBoxFunc(a1, a2, a3, a4, editBox:GetText() or "") - end - end - self:Close(editBoxFrame.level) - for i = 1, editBoxFrame.level - 1 do - Refresh(self, levels[i]) - end - end) - editBox:SetScript("OnEscapePressed", function() - self:Close(editBoxFrame.level) - 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 a1,a2,a3,a4 = editBoxFrame.parent.editBoxChangeArg1, editBoxFrame.parent.editBoxChangeArg2, editBoxFrame.parent.editBoxChangeArg3, editBoxFrame.parent.editBoxChangeArg4 - local text - if a1 == nil then - text = editBoxFrame.parent.editBoxChangeFunc(editBox:GetText() or "") - elseif a2 == nil then - text = editBoxFrame.parent.editBoxChangeFunc(a1, editBox:GetText() or "") - elseif a3 == nil then - text = editBoxFrame.parent.editBoxChangeFunc(a1, a2, editBox:GetText() or "") - elseif a4 == nil then - text = editBoxFrame.parent.editBoxChangeFunc(a1, a2, a3, editBox:GetText() or "") - else - text = editBoxFrame.parent.editBoxChangeFunc(a1, a2, a3, a4, editBox:GetText() or "") - end - if text then - editBox:SpecialSetText(text) - end - end - end) - editBoxFrame:SetScript("OnEnter", function() - StopCounting(self, editBoxFrame.level) - end) - editBoxFrame:SetScript("OnLeave", function() - StartCounting(self, editBoxFrame.level) - end) - editBox:SetScript("OnEnter", function() - StopCounting(self, editBoxFrame.level) - end) - editBox:SetScript("OnLeave", function() - StartCounting(self, editBoxFrame.level) - end) - 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:SpecialSetText(parent.editBoxText) - - if parent.arrow then --- parent.arrow:SetVertexColor(0.2, 0.6, 0) - parent.arrow:SetHeight(24) - parent.arrow:SetWidth(24) - 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 -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) - 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) - StartCounting(self, level) -end - -function Dewdrop:IsRegistered(parent) - self:argCheck(parent, 2, "table") - return not not self.registry[parent] -end - -function Dewdrop:Register(parent, k1, v1, k2, v2, k3, v3, k4, v4, k5, v5, k6, v6, k7, v7, k8, v8, k9, v9, k10, v10, k11, v11, k12, v12, k13, v13, k14, v14, k15, v15, k16, v16, k17, v17, k18, v18, k19, v19, k20, v20) - self:argCheck(parent, 2, "table") - if self.registry[parent] then - self:Unregister(parent) - end - local info = new(k1, v1, k2, v2, k3, v3, k4, v4, k5, v5, k6, v6, k7, v7, k8, v8, k9, v9, k10, v10, k11, v11, k12, v12, k13, v13, k14, v14, k15, v15, k16, v16, k17, v17, k18, v18, k19, v19, k20, v20) - 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, k1, v1, k2, v2, k3, v3, k4, v4, k5, v5, k6, v6, k7, v7, k8, v8, k9, v9, k10, v10, k11, v11, k12, v12, k13, v13, k14, v14, k15, v15, k16, v16, k17, v17, k18, v18, k19, v19, k20, v20) - self:argCheck(parent, 2, "table") - local info - 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(k1, v1, k2, v2, k3, v3, k4, v4, k5, v5, k6, v6, k7, v7, k8, v8, k9, v9, k10, v10, k11, v11, k12, v12, k13, v13, k14, v14, k15, v15, k16, v16, k17, v17, k18, v18, k19, v19, k20, v20) - 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 = table.getn(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.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, table.getn(levels) do - Clear(self, levels[level]) - levels[level]:Hide() - levels[i]:ClearAllPoints() - levels[i]:SetPoint("CENTER", UIParent, "CENTER") - end -end - -function Dewdrop:AddLine(k1, v1, k2, v2, k3, v3, k4, v4, k5, v5, k6, v6, k7, v7, k8, v8, k9, v9, k10, v10, k11, v11, k12, v12, k13, v13, k14, v14, k15, v15, k16, v16, k17, v17, k18, v18, k19, v19, k20, v20) - local info = tmp(k1, v1, k2, v2, k3, v3, k4, v4, k5, v5, k6, v6, k7, v7, k8, v8, k9, v9, k10, v10, k11, v11, k12, v12, k13, v13, k14, v14, k15, v15, k16, v16, k17, v17, k18, v18, k19, v19, k20, v20) - 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 string.find(info.checkIcon, "^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 string.find(info.checkIcon, "^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 - button.colorArg1 = info.colorArg1 - button.colorArg2 = info.colorArg2 - button.colorArg3 = info.colorArg3 - button.colorArg4 = info.colorArg4 - 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 - button.sliderArg1 = info.sliderArg1 - button.sliderArg2 = info.sliderArg2 - button.sliderArg3 = info.sliderArg3 - button.sliderArg4 = info.sliderArg4 - elseif info.hasEditBox then - button.hasEditBox = true - button.editBoxText = info.editBoxText or "" - button.editBoxFunc = info.editBoxFunc - button.editBoxArg1 = info.editBoxArg1 - button.editBoxArg2 = info.editBoxArg2 - button.editBoxArg3 = info.editBoxArg3 - button.editBoxArg4 = info.editBoxArg4 - button.editBoxChangeFunc = info.editBoxChangeFunc - button.editBoxChangeArg1 = info.editBoxChangeArg1 - button.editBoxChangeArg2 = info.editBoxChangeArg2 - button.editBoxChangeArg3 = info.editBoxChangeArg3 - button.editBoxChangeArg4 = info.editBoxChangeArg4 - button.editBoxValidateFunc = info.editBoxValidateFunc - button.editBoxValidateArg1 = info.editBoxValidateArg1 - button.editBoxValidateArg2 = info.editBoxValidateArg2 - button.editBoxValidateArg3 = info.editBoxValidateArg3 - button.editBoxValidateArg4 = info.editBoxValidateArg4 - else - button.value = info.value - end - else - button.arrow:SetAlpha(0) - end - button.arg1 = info.arg1 - button.arg2 = info.arg2 - button.arg3 = info.arg3 - button.arg4 = info.arg4 - 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 - button.tooltipArg1 = info.tooltipArg1 - button.tooltipArg2 = info.tooltipArg2 - button.tooltipArg3 = info.tooltipArg3 - button.tooltipArg4 = info.tooltipArg4 - 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 - self:assert(type(button.arg1) == "table", "Cannot call method " .. button.func .. " on a non-table") - self:assert(type(button.arg1[button.func]) == "function", "Method " .. button.func .. " nonexistant.") - end -end - -function Dewdrop:InjectAceOptionsTable(handler, options) - self:argCheck(handler, 2, "table") - self:argCheck(options, 3, "table") - if string.lower(tostring(options.type)) ~= "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) - - if hooksecurefunc then - hooksecurefunc(DropDownList1, "Show", function() - if levels[1] and levels[1]:IsVisible() then - self:Close() - end - end) - else - local DropDownList1_Show = DropDownList1.Show - function DropDownList1.Show(DropDownList1) - if levels[1] and levels[1]:IsVisible() then - self:Close() - end - DropDownList1_Show(DropDownList1) - end - end - - if hooksecurefunc then - hooksecurefunc("HideDropDownMenu", function() - if levels[1] and levels[1]:IsVisible() then - self:Close() - end - end) - else - local old_HideDropDownMenu = HideDropDownMenu - function HideDropDownMenu(num) - if levels[1] and levels[1]:IsVisible() then - self:Close() - end - old_HideDropDownMenu(num) - end - end - - if hooksecurefunc then - hooksecurefunc("CloseDropDownMenus", function() - if levels[1] and levels[1]:IsVisible() then - self:Close() - end - end) - else - local old_CloseDropDownMenus = CloseDropDownMenus - function CloseDropDownMenus(num) - if levels[1] and levels[1]:IsVisible() then - self:Close() - end - old_CloseDropDownMenus(num) - end - end - end - levels = {} - buttons = {} - - if oldDeactivate then - oldDeactivate(oldLib) - end -end - -AceLibrary:Register(Dewdrop, MAJOR_VERSION, MINOR_VERSION, activate) +--[[ +Name: Dewdrop-2.0 +Revision: $Rev: 15987 $ +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 +]] + +local MAJOR_VERSION = "Dewdrop-2.0" +local MINOR_VERSION = "$Revision: 15987 $" + +if not AceLibrary then error(MAJOR_VERSION .. " requires AceLibrary") end +if not AceLibrary:IsNewVersion(MAJOR_VERSION, MINOR_VERSION) then return end + +local Dewdrop = {} + +local lua51 = loadstring("return function(...) return ... end") and true or false + +local table_setn = lua51 and function() end or table.setn + +local function new(k1, v1, k2, v2, k3, v3, k4, v4, k5, v5, k6, v6, k7, v7, k8, v8, k9, v9, k10, v10, k11, v11, k12, v12, k13, v13, k14, v14, k15, v15, k16, v16, k17, v17, k18, v18, k19, v19, k20, v20) + local t = {} + if k1 then t[k1] = v1 + if k2 then t[k2] = v2 + if k3 then t[k3] = v3 + if k4 then t[k4] = v4 + if k5 then t[k5] = v5 + if k6 then t[k6] = v6 + if k7 then t[k7] = v7 + if k8 then t[k8] = v8 + if k9 then t[k9] = v9 + if k10 then t[k10] = v10 + if k11 then t[k11] = v11 + if k12 then t[k12] = v12 + if k13 then t[k13] = v13 + if k14 then t[k14] = v14 + if k15 then t[k15] = v15 + if k16 then t[k16] = v16 + if k17 then t[k17] = v17 + if k18 then t[k18] = v18 + if k19 then t[k19] = v19 + if k20 then t[k20] = v20 + end end end end end end end end end end end end end end end end end end end end + return t +end +if lua51 then + new = loadstring("return function(...) local t = {}; for i = 1, select('#', ...), 2 do if select(i, ...) then t[select(i, ...)] = select(i+1, ...); else break; end; end; return t; end")() +end + +local tmp +do + local t = {} + function tmp(k1, v1, k2, v2, k3, v3, k4, v4, k5, v5, k6, v6, k7, v7, k8, v8, k9, v9, k10, v10, k11, v11, k12, v12, k13, v13, k14, v14, k15, v15, k16, v16, k17, v17, k18, v18, k19, v19, k20, v20) + for k in pairs(t) do + t[k] = nil + end + if type(k1) == "table" then + for k,v in pairs(k1) do + t[k] = v + end + else + if k1 then t[k1] = v1 + if k2 then t[k2] = v2 + if k3 then t[k3] = v3 + if k4 then t[k4] = v4 + if k5 then t[k5] = v5 + if k6 then t[k6] = v6 + if k7 then t[k7] = v7 + if k8 then t[k8] = v8 + if k9 then t[k9] = v9 + if k10 then t[k10] = v10 + if k11 then t[k11] = v11 + if k12 then t[k12] = v12 + if k13 then t[k13] = v13 + if k14 then t[k14] = v14 + if k15 then t[k15] = v15 + if k16 then t[k16] = v16 + if k17 then t[k17] = v17 + if k18 then t[k18] = v18 + if k19 then t[k19] = v19 + if k20 then t[k20] = v20 + end end end end end end end end end end end end end end end end end end end end + end + return t + end + if lua51 then + tmp = loadstring("local t = {}; return function(...) for k in pairs(t) do t[k] = nil end; for i = 1, select('#', ...), 2 do if select(i, ...) then t[select(i, ...)] = select(i+1, ...) else break; end; end; return t; end")() + end +end +local tmp2 +do + local t = {} + function tmp2(k1, v1, k2, v2, k3, v3, k4, v4, k5, v5, k6, v6, k7, v7, k8, v8, k9, v9, k10, v10, k11, v11, k12, v12, k13, v13, k14, v14, k15, v15, k16, v16, k17, v17, k18, v18, k19, v19, k20, v20) + for k in pairs(t) do + t[k] = nil + end + if k1 then t[k1] = v1 + if k2 then t[k2] = v2 + if k3 then t[k3] = v3 + if k4 then t[k4] = v4 + if k5 then t[k5] = v5 + if k6 then t[k6] = v6 + if k7 then t[k7] = v7 + if k8 then t[k8] = v8 + if k9 then t[k9] = v9 + if k10 then t[k10] = v10 + if k11 then t[k11] = v11 + if k12 then t[k12] = v12 + if k13 then t[k13] = v13 + if k14 then t[k14] = v14 + if k15 then t[k15] = v15 + if k16 then t[k16] = v16 + if k17 then t[k17] = v17 + if k18 then t[k18] = v18 + if k19 then t[k19] = v19 + if k20 then t[k20] = v20 + end end end end end end end end end end end end end end end end end end end end + return t + end + if lua51 then + tmp2 = loadstring("local t = {}; return function(...) for k in pairs(t) do t[k] = nil end; for i = 1, select('#', ...), 2 do if select(i, ...) then t[select(i, ...)] = select(i+1, ...) else break; end; end; return t; end")() + 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, levelNum) + for i = levelNum, table.getn(levels) 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, arg1) + for _,level in ipairs(levels) do + if level.count then + level.count = level.count - arg1 + if level.count < 0 then + level.count = nil + self:Close(level.num) + 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 sliderFrame +local editBoxFrame + +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 table.getn(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() + local this = this + 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 + 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(this.tooltipArg1, this.tooltipArg2, this.tooltipArg3, this.tooltipArg4) + GameTooltip:Show() + end + end) + button:SetScript("OnLeave", function() + highlight:Hide() + button.radioHighlight:Hide() + if this.level then + StartCounting(self, this.level.num) + end + GameTooltip:Hide() + end) + button:SetScript("OnClick", function() + if not this.disabled then + if this.hasColorSwatch then + local func = button.colorFunc + local a1,a2,a3,a4 = button.colorArg1, button.colorArg2, button.colorArg3, button.colorArg4 + local hasOpacity = this.hasOpacity + ColorPickerFrame.func = function() + if func then + local r,g,b = ColorPickerFrame:GetColorRGB() + local a = hasOpacity and 1 - OpacitySliderFrame:GetValue() or nil + if a1 == nil then + func(r, g, b, a) + elseif a2 == nil then + func(a1, r, g, b, a) + elseif a3 == nil then + func(a1, a2, r, g, b, a) + elseif a4 == nil then + func(a1, a2, a3, r, g, b, a) + else + func(a1, a2, a3, a4, r, g, b, a) + end + 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 a1 == nil then + func(r, g, b, a) + elseif a2 == nil then + func(a1, r, g, b, a) + elseif a3 == nil then + func(a1, a2, r, g, b, a) + else + func(a1, a2, a3, r, g, b, a) + end + end + self:Close(1) + ShowUIPanel(ColorPickerFrame) + elseif this.func then + local level = button.level + if type(this.func) == "string" then + self:assert(type(this.arg1[this.func]) == "function", "Cannot call method " .. this.func) + this.arg1[this.func](this.arg1, this.arg2, this.arg3, this.arg4) + else + this.func(this.arg1, this.arg2, this.arg3, this.arg4) + end + if this.closeWhenClicked then + self:Close() + elseif level:IsShown() then + for i = 1, level.num do + Refresh(self, levels[i]) + 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 = buttons[table.getn(buttons)] + table.remove(buttons, table.getn(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 table.getn(level.buttons) == 0 then + button:SetPoint("TOP", level, "TOP", 0, -10) + else + button:SetPoint("TOP", level.buttons[table.getn(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 = table.getn(levels) + 1, level, -1 do + local i = i + numLevels = numLevels + 1 + local frame = CreateFrame("Button", "Dewdrop20Level" .. numLevels, nil) + if i == 1 then + local old_CloseWindows = CloseWindows + function CloseWindows(ignoreCenter) + local found = old_CloseWindows(ignoreCenter) + 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() + 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 checkValidate(validateFunc, func, arg1, arg2, arg3) + local text + if arg3 ~= nil then + text = arg3 + elseif arg2 ~= nil then + text = arg2 + else + text = arg1 + end + if not validateFunc(text) then + DEFAULT_CHAT_FRAME:AddMessage("|cffffff7fValidation error: [|r" .. tostring(text) .. "|cffffff7f]|r") + else + func(arg1, arg2, arg3) + 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 string.len(options.desc) == 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 string.len(options.cmdName) == 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 string.len(options.guiName) == 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 string.len(options.name) == 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 > table.getn(t) then + return '"validate" numeric keys must be indexed properly. >= 1 and <= table.getn', 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 + 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 + 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) ~= "string" then + return '"args" keys must be strings', position + elseif string.find(k, "%s") then + return string.format('"args" keys must not include spaces. %q is not appropriate.', k), position + elseif string.len(k) == 0 then + return '"args" keys must not be 0-length strings.', position + 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 + 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 + +function Dewdrop:FeedAceOptionsTable(options, difference) + self:argCheck(options, 2, "table") + self:argCheck(difference, 3, "nil", "number") + self:assert(currentLevel, "Cannot call `FeedAceOptionsTable' outside of a Dewdrop declaration") + 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] + self:assert(level, "Improper level given") + if not values then + values = {} + else + for k,v in pairs(values) do + values[k] = nil + end + table_setn(values, 0) + 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 table.getn(values) > 0 do + passTable = options.pass and current 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 + for k in pairs(options.args) do + table.insert(values, k) + end + 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 string.upper(alpha_name) < string.upper(bravo_name) + 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 = table.getn(values) >= 1 and (options.args[values[1]].order or 100) > 0 and (options.args[values[table.getn(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 + hidden = hidden() + elseif type(hidden) == "string" then + hidden = handler[hidden](handler) + end + if not hidden then + if type(disabled) == "function" then + disabled = disabled() + elseif type(disabled) == "string" then + disabled = handler[disabled](handler) + 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 or 0 + local iconCoordRight = v.iconCoordRight or 1 + local iconCoordBottom = v.iconCoordBottom or 0 + local iconCoordTop = v.iconCoordTop or 1 + local tooltipTitle, tooltipText + tooltipTitle = name + if name ~= desc then + tooltipText = desc + end + if v.type == "toggle" then + local checked + if type(v.get) == "function" then + checked = v.get(passValue) + else + if not handler[v.get] then + Dewdrop:error("Handler %q not available", v.get) + end + checked = handler[v.get](handler, passValue) + end + local func, arg1, arg2, arg3 + if type(v.set) == "function" then + func = v.set + if passValue ~= nil then + arg1 = passValue + arg2 = not checked + else + arg1 = not checked + end + else + if not handler[v.set] then + Dewdrop:error("Handler %q not available", v.set) + end + func = handler[v.set] + arg1 = handler + if passValue ~= nil then + arg2 = passValue + arg3 = not checked + else + arg2 = not checked + end + end + if v.guiNameIsMap then + checked = checked and true or false + name = string.gsub(tostring(v.map and v.map[checked]), "|c%x%x%x%x%x%x%x%x(.-)|r", "%1") + checked = 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 + if type(v.func) == "function" then + func = v.func + arg1 = passValue + else + if not handler[v.func] then + Dewdrop:error("Handler %q not available", v.func) + end + func = handler[v.func] + arg1 = handler + arg2 = passValue + end + self:AddLine( + 'text', name, + 'checked', checked, + 'func', func, + 'arg1', arg1, + 'arg2', arg2, + '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.get) == "function" then + sliderValue = v.get(passValue) + else + if not handler[v.get] then + Dewdrop:error("Handler %q not available", v.get) + end + sliderValue = handler[v.get](handler, passValue) + end + local sliderFunc, sliderArg1, sliderArg2 + if type(v.set) == "function" then + sliderFunc = v.set + sliderArg1 = passValue + else + if not handler[v.set] then + Dewdrop:error("Handler %q not available", v.set) + end + sliderFunc = handler[v.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.get) == "function" then + r,g,b,a = v.get(passValue) + else + if not handler[v.get] then + Dewdrop:error("Handler %q not available", v.get) + end + r,g,b,a = handler[v.get](handler, passValue) + end + local colorFunc, colorArg1, colorArg2 + if type(v.set) == "function" then + colorFunc = v.set + colorArg1 = passValue + else + if not handler[v.set] then + Dewdrop:error("Handler %q not available", v.set) + end + colorFunc = handler[v.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.get) == "function" then + editBoxText = v.get(passValue) + elseif v.get == false then + editBoxText = nil + else + if not handler[v.get] then + Dewdrop:error("Handler %q not available", v.get) + end + editBoxText = handler[v.get](handler, passValue) + end + local editBoxFunc, editBoxArg1, editBoxArg2 + if type(v.set) == "function" then + editBoxFunc = v.set + editBoxArg1 = passValue + else + if not handler[v.set] then + Dewdrop:error("Handler %q not available", v.set) + end + editBoxFunc = handler[v.set] + editBoxArg1 = handler + editBoxArg2 = passValue + end + + local editBoxValidateFunc, editBoxValidateArg1 + + if v.validate 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 + 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, + '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 + if type(options.get) == "function" then + current = options.get(passValue) + elseif options.get ~= false then + if not handler[options.get] then + Dewdrop:error("Handler %q not available", options.get) + end + current = handler[options.get](handler, passValue) + 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] < othersort_validate[bravo] + 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 + if type(options.set) == "function" then + func = options.set + if passValue ~= nil then + arg1 = passValue + arg2 = k + else + arg1 = k + end + else + if not handler[options.set] then + Dewdrop:error("Handler %q not available", options.set) + end + func = handler[options.set] + arg1 = handler + if passValue ~= nil then + arg2 = passValue + arg3 = k + else + arg2 = k + end + end + local checked = (k == current or (type(k) == "string" and type(current) == "string" and string.lower(k) == string.lower(current))) + self:AddLine( + 'text', v, + 'func', not checked and func or nil, + 'arg1', not checked and arg1 or nil, + 'arg2', not checked and arg2 or nil, + 'arg3', not checked and arg3 or nil, + 'isRadio', true, + 'checked', checked, + 'tooltipTitle', options.guiName or options.name, + 'tooltipText', v + ) + end + for k in pairs(values) do + values[k] = nil + end + table_setn(values, 0) + 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 string.find(name, '^table:') then + name = string.gsub(name, "|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, + '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 then + if 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 a1,a2,a3,a4 = sliderFrame.parent.sliderArg1, sliderFrame.parent.sliderArg2, sliderFrame.parent.sliderArg3, sliderFrame.parent.sliderArg4 + 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 + local text + if a1 == nil then + text = sliderFrame.parent.sliderFunc(value) + elseif a2 == nil then + text = sliderFrame.parent.sliderFunc(a1, value) + elseif a3 == nil then + text = sliderFrame.parent.sliderFunc(a1, a2, value) + elseif a4 == nil then + text = sliderFrame.parent.sliderFunc(a1, a2, a3, value) + else + text = sliderFrame.parent.sliderFunc(a1, a2, a3, a4, value) + end + if text then + sliderFrame.currentText:SetText(text) + done = true + end + 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) + end) + sliderFrame:SetScript("OnLeave", function() + StartCounting(self, sliderFrame.level) + end) + slider:SetScript("OnMouseDown", function() + sliderFrame.mouseDown = true + end) + slider:SetScript("OnMouseUp", function() + sliderFrame.mouseDown = false + if changed and not inside then + local parent = sliderFrame.parent + for i = 1, sliderFrame.level - 1 do + Refresh(self, levels[i]) + end + OpenSlider(self, parent) + end + end) + slider:SetScript("OnEnter", function() + inside = true + StopCounting(self, sliderFrame.level) + end) + slider:SetScript("OnLeave", function() + inside = false + StartCounting(self, sliderFrame.level) + if changed and not sliderFrame.mouseDown then + local parent = sliderFrame.parent + for i = 1, sliderFrame.level - 1 do + Refresh(self, levels[i]) + end + OpenSlider(self, parent) + 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) + end + + 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 + local a1,a2,a3,a4 = parent.sliderArg1, parent.sliderArg2, parent.sliderArg3, parent.sliderArg4 + if a1 == nil then + text = parent.sliderFunc(parent.sliderValue) + elseif a2 == nil then + text = parent.sliderFunc(a1, parent.sliderValue) + elseif a3 == nil then + text = parent.sliderFunc(a1, a2, parent.sliderValue) + elseif a4 == nil then + text = parent.sliderFunc(a1, a2, a3, parent.sliderValue) + else + text = parent.sliderFunc(a1, a2, a3, a4, parent.sliderValue) + end + 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 + + 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 +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: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 a1,a2,a3,a4 = editBoxFrame.parent.editBoxValidateArg1, editBoxFrame.parent.editBoxValidateArg2, editBoxFrame.parent.editBoxValidateArg3, editBoxFrame.parent.editBoxValidateArg4 + + local result + if a1 == nil then + result = editBoxFrame.parent.editBoxValidateFunc(editBox:GetText() or "") + elseif a2 == nil then + result = editBoxFrame.parent.editBoxValidateFunc(a1, editBox:GetText() or "") + elseif a3 == nil then + result = editBoxFrame.parent.editBoxValidateFunc(a1, a2, editBox:GetText() or "") + elseif a4 == nil then + result = editBoxFrame.parent.editBoxValidateFunc(a1, a2, a3, editBox:GetText() or "") + else + result = editBoxFrame.parent.editBoxValidateFunc(a1, a2, a3, a4, editBox:GetText() or "") + end + if not result then + message("Validation error: [" .. tostring(text) .. "]") + return + end + end + if editBoxFrame.parent and editBoxFrame.parent.editBoxFunc then + local a1,a2,a3,a4 = editBoxFrame.parent.editBoxArg1, editBoxFrame.parent.editBoxArg2, editBoxFrame.parent.editBoxArg3, editBoxFrame.parent.editBoxArg4 + if a1 == nil then + editBoxFrame.parent.editBoxFunc(editBox:GetText() or "") + elseif a2 == nil then + editBoxFrame.parent.editBoxFunc(a1, editBox:GetText() or "") + elseif a3 == nil then + editBoxFrame.parent.editBoxFunc(a1, a2, editBox:GetText() or "") + elseif a4 == nil then + editBoxFrame.parent.editBoxFunc(a1, a2, a3, editBox:GetText() or "") + else + editBoxFrame.parent.editBoxFunc(a1, a2, a3, a4, editBox:GetText() or "") + end + end + self:Close(editBoxFrame.level) + for i = 1, editBoxFrame.level - 1 do + Refresh(self, levels[i]) + end + end) + editBox:SetScript("OnEscapePressed", function() + self:Close(editBoxFrame.level) + 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 a1,a2,a3,a4 = editBoxFrame.parent.editBoxChangeArg1, editBoxFrame.parent.editBoxChangeArg2, editBoxFrame.parent.editBoxChangeArg3, editBoxFrame.parent.editBoxChangeArg4 + local text + if a1 == nil then + text = editBoxFrame.parent.editBoxChangeFunc(editBox:GetText() or "") + elseif a2 == nil then + text = editBoxFrame.parent.editBoxChangeFunc(a1, editBox:GetText() or "") + elseif a3 == nil then + text = editBoxFrame.parent.editBoxChangeFunc(a1, a2, editBox:GetText() or "") + elseif a4 == nil then + text = editBoxFrame.parent.editBoxChangeFunc(a1, a2, a3, editBox:GetText() or "") + else + text = editBoxFrame.parent.editBoxChangeFunc(a1, a2, a3, a4, editBox:GetText() or "") + end + if text then + editBox:SpecialSetText(text) + end + end + end) + editBoxFrame:SetScript("OnEnter", function() + StopCounting(self, editBoxFrame.level) + end) + editBoxFrame:SetScript("OnLeave", function() + StartCounting(self, editBoxFrame.level) + end) + editBox:SetScript("OnEnter", function() + StopCounting(self, editBoxFrame.level) + end) + editBox:SetScript("OnLeave", function() + StartCounting(self, editBoxFrame.level) + end) + 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:SpecialSetText(parent.editBoxText) + + if parent.arrow then +-- parent.arrow:SetVertexColor(0.2, 0.6, 0) + parent.arrow:SetHeight(24) + parent.arrow:SetWidth(24) + 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 +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) + 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) + StartCounting(self, level) +end + +function Dewdrop:IsRegistered(parent) + self:argCheck(parent, 2, "table") + return not not self.registry[parent] +end + +function Dewdrop:Register(parent, k1, v1, k2, v2, k3, v3, k4, v4, k5, v5, k6, v6, k7, v7, k8, v8, k9, v9, k10, v10, k11, v11, k12, v12, k13, v13, k14, v14, k15, v15, k16, v16, k17, v17, k18, v18, k19, v19, k20, v20) + self:argCheck(parent, 2, "table") + if self.registry[parent] then + self:Unregister(parent) + end + local info = new(k1, v1, k2, v2, k3, v3, k4, v4, k5, v5, k6, v6, k7, v7, k8, v8, k9, v9, k10, v10, k11, v11, k12, v12, k13, v13, k14, v14, k15, v15, k16, v16, k17, v17, k18, v18, k19, v19, k20, v20) + 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, k1, v1, k2, v2, k3, v3, k4, v4, k5, v5, k6, v6, k7, v7, k8, v8, k9, v9, k10, v10, k11, v11, k12, v12, k13, v13, k14, v14, k15, v15, k16, v16, k17, v17, k18, v18, k19, v19, k20, v20) + self:argCheck(parent, 2, "table") + local info + 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(k1, v1, k2, v2, k3, v3, k4, v4, k5, v5, k6, v6, k7, v7, k8, v8, k9, v9, k10, v10, k11, v11, k12, v12, k13, v13, k14, v14, k15, v15, k16, v16, k17, v17, k18, v18, k19, v19, k20, v20) + 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 = table.getn(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.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, table.getn(levels) do + Clear(self, levels[level]) + levels[level]:Hide() + levels[i]:ClearAllPoints() + levels[i]:SetPoint("CENTER", UIParent, "CENTER") + end +end + +function Dewdrop:AddLine(k1, v1, k2, v2, k3, v3, k4, v4, k5, v5, k6, v6, k7, v7, k8, v8, k9, v9, k10, v10, k11, v11, k12, v12, k13, v13, k14, v14, k15, v15, k16, v16, k17, v17, k18, v18, k19, v19, k20, v20) + local info = tmp(k1, v1, k2, v2, k3, v3, k4, v4, k5, v5, k6, v6, k7, v7, k8, v8, k9, v9, k10, v10, k11, v11, k12, v12, k13, v13, k14, v14, k15, v15, k16, v16, k17, v17, k18, v18, k19, v19, k20, v20) + 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 string.find(info.checkIcon, "^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 string.find(info.checkIcon, "^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 + button.colorArg1 = info.colorArg1 + button.colorArg2 = info.colorArg2 + button.colorArg3 = info.colorArg3 + button.colorArg4 = info.colorArg4 + 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 + button.sliderArg1 = info.sliderArg1 + button.sliderArg2 = info.sliderArg2 + button.sliderArg3 = info.sliderArg3 + button.sliderArg4 = info.sliderArg4 + elseif info.hasEditBox then + button.hasEditBox = true + button.editBoxText = info.editBoxText or "" + button.editBoxFunc = info.editBoxFunc + button.editBoxArg1 = info.editBoxArg1 + button.editBoxArg2 = info.editBoxArg2 + button.editBoxArg3 = info.editBoxArg3 + button.editBoxArg4 = info.editBoxArg4 + button.editBoxChangeFunc = info.editBoxChangeFunc + button.editBoxChangeArg1 = info.editBoxChangeArg1 + button.editBoxChangeArg2 = info.editBoxChangeArg2 + button.editBoxChangeArg3 = info.editBoxChangeArg3 + button.editBoxChangeArg4 = info.editBoxChangeArg4 + button.editBoxValidateFunc = info.editBoxValidateFunc + button.editBoxValidateArg1 = info.editBoxValidateArg1 + button.editBoxValidateArg2 = info.editBoxValidateArg2 + button.editBoxValidateArg3 = info.editBoxValidateArg3 + button.editBoxValidateArg4 = info.editBoxValidateArg4 + else + button.value = info.value + end + else + button.arrow:SetAlpha(0) + end + button.arg1 = info.arg1 + button.arg2 = info.arg2 + button.arg3 = info.arg3 + button.arg4 = info.arg4 + 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 + button.tooltipArg1 = info.tooltipArg1 + button.tooltipArg2 = info.tooltipArg2 + button.tooltipArg3 = info.tooltipArg3 + button.tooltipArg4 = info.tooltipArg4 + 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 + self:assert(type(button.arg1) == "table", "Cannot call method " .. button.func .. " on a non-table") + self:assert(type(button.arg1[button.func]) == "function", "Method " .. button.func .. " nonexistant.") + end +end + +function Dewdrop:InjectAceOptionsTable(handler, options) + self:argCheck(handler, 2, "table") + self:argCheck(options, 3, "table") + if string.lower(tostring(options.type)) ~= "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) + + if hooksecurefunc then + hooksecurefunc(DropDownList1, "Show", function() + if levels[1] and levels[1]:IsVisible() then + self:Close() + end + end) + else + local DropDownList1_Show = DropDownList1.Show + function DropDownList1.Show(DropDownList1) + if levels[1] and levels[1]:IsVisible() then + self:Close() + end + DropDownList1_Show(DropDownList1) + end + end + + if hooksecurefunc then + hooksecurefunc("HideDropDownMenu", function() + if levels[1] and levels[1]:IsVisible() then + self:Close() + end + end) + else + local old_HideDropDownMenu = HideDropDownMenu + function HideDropDownMenu(num) + if levels[1] and levels[1]:IsVisible() then + self:Close() + end + old_HideDropDownMenu(num) + end + end + + if hooksecurefunc then + hooksecurefunc("CloseDropDownMenus", function() + if levels[1] and levels[1]:IsVisible() then + self:Close() + end + end) + else + local old_CloseDropDownMenus = CloseDropDownMenus + function CloseDropDownMenus(num) + if levels[1] and levels[1]:IsVisible() then + self:Close() + end + old_CloseDropDownMenus(num) + end + end + end + levels = {} + buttons = {} + + if oldDeactivate then + oldDeactivate(oldLib) + end +end + +AceLibrary:Register(Dewdrop, MAJOR_VERSION, MINOR_VERSION, activate) diff --git a/Payload/Interface/Addons/nampowersettings/libs/FuBarPlugin/FuBarPlugin-2.0.lua b/Payload/Interface/Addons/nampowersettings/libs/FuBarPlugin/FuBarPlugin-2.0.lua index 292c8fc..62ecca5 100644 --- a/Payload/Interface/Addons/nampowersettings/libs/FuBarPlugin/FuBarPlugin-2.0.lua +++ b/Payload/Interface/Addons/nampowersettings/libs/FuBarPlugin/FuBarPlugin-2.0.lua @@ -1,1480 +1,1480 @@ ---[[ -Name: FuBarPlugin-2.0 -Revision: $Rev: 15811 $ -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 -]] - -local MAJOR_VERSION = "FuBarPlugin-2.0" -local MINIMAPCONTAINER_MAJOR_VERSION = "FuBarPlugin-MinimapContainer-2.0" -local MINOR_VERSION = "$Revision: 15811 $" - --- 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 FuBar plugin" -local HIDE_FUBAR_PLUGIN_CMD = "Hidden" -local HIDE_FUBAR_PLUGIN_DESC = "Hide the plugin from the panel." - -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 = "패널에서 플러그인을 숨깁니다." -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." -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." - 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 = "Atteche 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." -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 = "在面板上隱藏該插件." -end - -local FuBarPlugin = AceLibrary("AceOO-2.0").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(string.sub(FuBar.version, 1, 3)) and tonumber(string.sub(FuBar.version, 1, 3)) >= 2 and true - end - return good -end - -function FuBarPlugin:GetTitle() - local name = self.title or self.name - FuBarPlugin:assert(name, "You must provide self.title or self.name") - local _,_,title = string.find(name, "FuBar %- (.-)%s*$") - if not title then - title = name - end - return (string.gsub(string.gsub(title, "|c%x%x%x%x%x%x%x%x", ""), "|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() - FuBarPlugin:assert(self.db, "Cannot change text color if self.db is not available. (" .. self:GetTitle() .. ")") - 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 string.find(name, '^table:') then - name = string.gsub(name, "|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 - ) - 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 - 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") - FuBarPlugin:assert(self.hasIcon, "Cannot set icon unless self.hasIcon is set. (" .. self:GetTitle() .. ")") - if not self.iconFrame then - return - end - if type(path) ~= "string" then - path = format("Interface\\AddOns\\%s\\icon", self.folderName) - elseif not string.find(path, '^Interface[\\/]') then - path = format("Interface\\AddOns\\%s\\%s", self.folderName, path) - end - if string.sub(path, 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 string.sub(path, 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 - FuBarPlugin:assert(not self.hasNoText, "Cannot set text if self.hasNoText has been set. (" .. self:GetTitle() .. ")") - 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 = string.gsub(string.gsub(text, "|c%x%x%x%x%x%x%x%x", ""), "|r", "") - end - self.textFrame:SetText(text) - self:CheckWidth() -end - -function FuBarPlugin:GetText() - FuBarPlugin:assert(self.textFrame, "Cannot get text without a self.textFrame (" .. self:GetTitle() .. ")") - 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.profile.showIcon == nil then - return true - else - return (self.db.profile.showIcon == 1 or self.db.profile.showIcon == true) and true or false - end -end - -function FuBarPlugin:ToggleIconShown() - FuBarPlugin:assert(self.iconFrame, "Cannot toggle icon without a self.iconFrame (" .. self:GetTitle() .. ")") - FuBarPlugin:assert(self.hasIcon, "Cannot show icon unless self.hasIcon is set. (" .. self:GetTitle() .. ")") - FuBarPlugin:assert(not self.hasNoText, "Cannot hide icon if self.hasNoText is set. (" .. self:GetTitle() .. ")") - FuBarPlugin:assert(self.textFrame, "Cannot hide icon if self.textFrame is not set. (" .. self:GetTitle() .. ")") - FuBarPlugin:assert(self.iconFrame, "Cannot hide icon if self.iconFrame is not set. (" .. self:GetTitle() .. ")") - FuBarPlugin:assert(self.db, "Cannot hide icon if self.db is not available. (" .. self:GetTitle() .. ")") - 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.profile.showText == nil then - return true - else - return (self.db.profile.showText == 1 or self.db.profile.showText == true) and true or false - end -end - -function FuBarPlugin:ToggleTextShown() - FuBarPlugin:assert(not self.cannotHideText, "Cannot hide text unless self.cannotHideText is unset. (" .. self:GetTitle() .. ")") - FuBarPlugin:assert(self.hasIcon, "Cannot show text unless self.hasIcon is set. (" .. self:GetTitle() .. ")") - FuBarPlugin:assert(not self.hasNoText, "Cannot hide text if self.hasNoText is set. (" .. self:GetTitle() .. ")") - FuBarPlugin:assert(self.textFrame, "Cannot hide text if self.textFrame is not set. (" .. self:GetTitle() .. ")") - FuBarPlugin:assert(self.iconFrame, "Cannot hide text if self.iconFrame is not set. (" .. self:GetTitle() .. ")") - FuBarPlugin:assert(self.db, "Cannot hide text if self.db is not available. (" .. self:GetTitle() .. ")") - 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 -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 then - FuBarPlugin:assert(IsCorrectPanel(panel), "Bad argument #2 to `SetPanel'. Panel does not have the correct API.") - end - self.panel = panel -end - -function FuBarPlugin:SetFontSize(size) - FuBarPlugin:assert(not self.userDefinedFrame, "You must provide a SetFontSize(size) method if you provide your own frame.") - if self.hasIcon then - FuBarPlugin:assert(self.iconFrame, (self.name and self.name .. ": " or "") .. "No iconFrame found") - self.iconFrame:SetWidth(size + 3) - self.iconFrame:SetHeight(size + 3) - end - if not self.hasNoText then - FuBarPlugin:assert(self.textFrame, (self.name and self.name .. ": " or "") .. "No textFrame found") - local font, _, flags = self.textFrame:GetFont() - self.textFrame:SetFont(font, size, flags) - end - self:CheckWidth() -end - -function FuBarPlugin:IsLoadOnDemand() - return IsAddOnLoadOnDemand(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 = string.find(debugstack(6, 1, 0), "\\AddOns\\(.*)\\") - target.folderName = folderName - self.folderNames[target] = folderName -end - -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:SetScript("OnClick", function() - if type(self.OnClick) == "function" then - self:OnClick(arg1) - end - end) - frame:SetScript("OnDoubleClick", function() - if type(self.OnDoubleClick) == "function" then - self:OnDoubleClick(arg1) - end - end) - frame:SetScript("OnMouseDown", function() - if arg1 == "RightButton" and not IsShiftKeyDown() and not IsControlKeyDown() and not IsAltKeyDown() then - self:OpenMenu() - return - else - HideDropDownMenu(1) - if type(self.OnMouseDown) == "function" then - self:OnMouseDown(arg1) - end - end - end) - frame:SetScript("OnMouseUp", function() - if type(self.OnMouseUp) == "function" then - self:OnMouseUp(arg1) - end - end) - frame:SetScript("OnReceiveDrag", function() - if type(self.OnReceiveDrag) == "function" then - self:OnReceiveDrag() - end - end) - return frame -end - -function FuBarPlugin:CreatePluginChildFrame(frameType, name, parent) - FuBarPlugin:assert(self.frame, "You must have self.frame declared in order to add child frames") - FuBarPlugin:argCheck(frameType, 1, "string") - local child = CreateFrame(frameType, name, parent) - if parent then - child:SetFrameLevel(parent:GetFrameLevel() + 2) - end - child:SetScript("OnEnter", function() - if self.frame:GetScript("OnEnter") then - self.frame:GetScript("OnEnter")() - end - end) - child:SetScript("OnLeave", function() - if self.frame:GetScript("OnLeave") then - self.frame:GetScript("OnLeave")() - end - end) - if child:HasScript("OnClick") then - child:SetScript("OnClick", function() - if self.frame:HasScript("OnClick") and self.frame:GetScript("OnClick") then - self.frame:GetScript("OnClick")() - end - end) - end - if child:HasScript("OnDoubleClick") then - child:SetScript("OnDoubleClick", function() - if self.frame:HasScript("OnDoubleClick") and self.frame:GetScript("OnDoubleClick") then - self.frame:GetScript("OnDoubleClick")() - end - end) - end - child:SetScript("OnMouseDown", function() - if self.frame:GetScript("OnMouseDown") then - self.frame:GetScript("OnMouseDown")() - end - end) - child:SetScript("OnMouseUp", function() - if self.frame:GetScript("OnMouseUp") then - self.frame:GetScript("OnMouseUp")() - end - end) - child:SetScript("OnReceiveDrag", function() - if self.frame:GetScript("OnReceiveDrag") then - self.frame:GetScript("OnReceiveDrag")() - end - end) - 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 - Dewdrop:AddLine( - 'text', self:GetTitle(), - 'isTitle', true - ) - end - - if level == 1 then - 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 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, - '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 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[self.folderName] then - FuBar.db.profile.loadOnDemand[self.folderName] = {} - end - FuBar.db.profile.loadOnDemand[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.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[self.folderName] then - FuBar.db.profile.loadOnDemand[self.folderName] = {} - end - FuBar.db.profile.loadOnDemand[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 - 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 = {} - -local IsMinimapSquare -do - local value - function IsMinimapSquare() - if value == nil then - if not AceEvent or not AceEvent:IsFullyInitialized() then - return IsAddOnLoaded("CornerMinimap") or IsAddOnLoaded("SquareMinimap") or IsAddOnLoaded("Squeenix") - else - value = IsAddOnLoaded("CornerMinimap") or IsAddOnLoaded("SquareMinimap") or IsAddOnLoaded("Squeenix") and true or false - end - end - return value - end -end - -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 string.sub(path, 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 string.sub(this.plugin.minimapIcon:GetTexture(), 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 string.sub(this.plugin.minimapIcon:GetTexture(), 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 - if not IsMinimapSquare() then - x = math.cos(angle) * 80 - y = math.sin(angle) * 80 - else - x = 110 * math.cos(angle) - y = 110 * math.sin(angle) - 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 string.sub(this.plugin.minimapIcon:GetTexture(), 1, 16) == "Interface\\Icons\\" then - this.plugin.minimapIcon:SetTexCoord(0.05, 0.95, 0.05, 0.95) - else - this.plugin.minimapIcon:SetTexCoord(0, 1, 0, 1) - end -end - -function MinimapContainer.OnDragStop() - this:SetScript("OnUpdate", nil) - this:UnlockHighlight() -end - -function MinimapContainer.OnUpdate() - if not IsAltKeyDown() then - local mx, my = Minimap:GetCenter() - local px, py = GetCursorPosition() - local scale = UIParent:GetEffectiveScale() - px, py = px / scale, py / scale - local position = math.deg(math.atan2(py - my, px - mx)) - if position <= 0 then - position = position + 360 - elseif position > 360 then - position = position - 360 - end - if this.plugin.db then - this.plugin.db.profile.minimapPosition = position - this.plugin.db.profile.minimapPositionX = nil - this.plugin.db.profile.minimapPositionY = nil - this.plugin.db.profile.minimapPositionWild = nil - else - this.plugin.minimapPosition = position - this.plugin.minimapPositionX = nil - this.plugin.minimapPositionY = nil - this.plugin.minimapPositionWild = nil - end - else - local px, py = GetCursorPosition() - local scale = UIParent:GetEffectiveScale() - px, py = px / scale, py / scale - if this.plugin.db then - this.plugin.db.profile.minimapPositionX = px - this.plugin.db.profile.minimapPositionY = py - this.plugin.db.profile.minimapPosition = nil - this.plugin.db.profile.minimapPositionWild = true - else - this.plugin.minimapPositionX = px - this.plugin.minimapPositionY = py - this.plugin.minimapPosition = nil - this.plugin.minimapPositionWild = true - end - end - MinimapContainer:ReadjustLocation(this.plugin) -end - -local function activate(self, oldLib, oldDeactivate) - MinimapContainer = self - - if oldLib then - self.plugins = oldLib.plugins - end - - if not self.plugins then - self.plugins = {} - end - - if oldDeactivate then - oldDeactivate(oldLib) - end -end - -AceLibrary:Register(MinimapContainer, MINIMAPCONTAINER_MAJOR_VERSION, MINOR_VERSION, activate) +--[[ +Name: FuBarPlugin-2.0 +Revision: $Rev: 15811 $ +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 +]] + +local MAJOR_VERSION = "FuBarPlugin-2.0" +local MINIMAPCONTAINER_MAJOR_VERSION = "FuBarPlugin-MinimapContainer-2.0" +local MINOR_VERSION = "$Revision: 15811 $" + +-- 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 FuBar plugin" +local HIDE_FUBAR_PLUGIN_CMD = "Hidden" +local HIDE_FUBAR_PLUGIN_DESC = "Hide the plugin from the panel." + +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 = "패널에서 플러그인을 숨깁니다." +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." +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." + 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 = "Atteche 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." +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 = "在面板上隱藏該插件." +end + +local FuBarPlugin = AceLibrary("AceOO-2.0").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(string.sub(FuBar.version, 1, 3)) and tonumber(string.sub(FuBar.version, 1, 3)) >= 2 and true + end + return good +end + +function FuBarPlugin:GetTitle() + local name = self.title or self.name + FuBarPlugin:assert(name, "You must provide self.title or self.name") + local _,_,title = string.find(name, "FuBar %- (.-)%s*$") + if not title then + title = name + end + return (string.gsub(string.gsub(title, "|c%x%x%x%x%x%x%x%x", ""), "|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() + FuBarPlugin:assert(self.db, "Cannot change text color if self.db is not available. (" .. self:GetTitle() .. ")") + 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 string.find(name, '^table:') then + name = string.gsub(name, "|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 + ) + 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 + 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") + FuBarPlugin:assert(self.hasIcon, "Cannot set icon unless self.hasIcon is set. (" .. self:GetTitle() .. ")") + if not self.iconFrame then + return + end + if type(path) ~= "string" then + path = format("Interface\\AddOns\\%s\\icon", self.folderName) + elseif not string.find(path, '^Interface[\\/]') then + path = format("Interface\\AddOns\\%s\\%s", self.folderName, path) + end + if string.sub(path, 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 string.sub(path, 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 + FuBarPlugin:assert(not self.hasNoText, "Cannot set text if self.hasNoText has been set. (" .. self:GetTitle() .. ")") + 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 = string.gsub(string.gsub(text, "|c%x%x%x%x%x%x%x%x", ""), "|r", "") + end + self.textFrame:SetText(text) + self:CheckWidth() +end + +function FuBarPlugin:GetText() + FuBarPlugin:assert(self.textFrame, "Cannot get text without a self.textFrame (" .. self:GetTitle() .. ")") + 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.profile.showIcon == nil then + return true + else + return (self.db.profile.showIcon == 1 or self.db.profile.showIcon == true) and true or false + end +end + +function FuBarPlugin:ToggleIconShown() + FuBarPlugin:assert(self.iconFrame, "Cannot toggle icon without a self.iconFrame (" .. self:GetTitle() .. ")") + FuBarPlugin:assert(self.hasIcon, "Cannot show icon unless self.hasIcon is set. (" .. self:GetTitle() .. ")") + FuBarPlugin:assert(not self.hasNoText, "Cannot hide icon if self.hasNoText is set. (" .. self:GetTitle() .. ")") + FuBarPlugin:assert(self.textFrame, "Cannot hide icon if self.textFrame is not set. (" .. self:GetTitle() .. ")") + FuBarPlugin:assert(self.iconFrame, "Cannot hide icon if self.iconFrame is not set. (" .. self:GetTitle() .. ")") + FuBarPlugin:assert(self.db, "Cannot hide icon if self.db is not available. (" .. self:GetTitle() .. ")") + 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.profile.showText == nil then + return true + else + return (self.db.profile.showText == 1 or self.db.profile.showText == true) and true or false + end +end + +function FuBarPlugin:ToggleTextShown() + FuBarPlugin:assert(not self.cannotHideText, "Cannot hide text unless self.cannotHideText is unset. (" .. self:GetTitle() .. ")") + FuBarPlugin:assert(self.hasIcon, "Cannot show text unless self.hasIcon is set. (" .. self:GetTitle() .. ")") + FuBarPlugin:assert(not self.hasNoText, "Cannot hide text if self.hasNoText is set. (" .. self:GetTitle() .. ")") + FuBarPlugin:assert(self.textFrame, "Cannot hide text if self.textFrame is not set. (" .. self:GetTitle() .. ")") + FuBarPlugin:assert(self.iconFrame, "Cannot hide text if self.iconFrame is not set. (" .. self:GetTitle() .. ")") + FuBarPlugin:assert(self.db, "Cannot hide text if self.db is not available. (" .. self:GetTitle() .. ")") + 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 +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 then + FuBarPlugin:assert(IsCorrectPanel(panel), "Bad argument #2 to `SetPanel'. Panel does not have the correct API.") + end + self.panel = panel +end + +function FuBarPlugin:SetFontSize(size) + FuBarPlugin:assert(not self.userDefinedFrame, "You must provide a SetFontSize(size) method if you provide your own frame.") + if self.hasIcon then + FuBarPlugin:assert(self.iconFrame, (self.name and self.name .. ": " or "") .. "No iconFrame found") + self.iconFrame:SetWidth(size + 3) + self.iconFrame:SetHeight(size + 3) + end + if not self.hasNoText then + FuBarPlugin:assert(self.textFrame, (self.name and self.name .. ": " or "") .. "No textFrame found") + local font, _, flags = self.textFrame:GetFont() + self.textFrame:SetFont(font, size, flags) + end + self:CheckWidth() +end + +function FuBarPlugin:IsLoadOnDemand() + return IsAddOnLoadOnDemand(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 = string.find(debugstack(6, 1, 0), "\\AddOns\\(.*)\\") + target.folderName = folderName + self.folderNames[target] = folderName +end + +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:SetScript("OnClick", function() + if type(self.OnClick) == "function" then + self:OnClick(arg1) + end + end) + frame:SetScript("OnDoubleClick", function() + if type(self.OnDoubleClick) == "function" then + self:OnDoubleClick(arg1) + end + end) + frame:SetScript("OnMouseDown", function() + if arg1 == "RightButton" and not IsShiftKeyDown() and not IsControlKeyDown() and not IsAltKeyDown() then + self:OpenMenu() + return + else + HideDropDownMenu(1) + if type(self.OnMouseDown) == "function" then + self:OnMouseDown(arg1) + end + end + end) + frame:SetScript("OnMouseUp", function() + if type(self.OnMouseUp) == "function" then + self:OnMouseUp(arg1) + end + end) + frame:SetScript("OnReceiveDrag", function() + if type(self.OnReceiveDrag) == "function" then + self:OnReceiveDrag() + end + end) + return frame +end + +function FuBarPlugin:CreatePluginChildFrame(frameType, name, parent) + FuBarPlugin:assert(self.frame, "You must have self.frame declared in order to add child frames") + FuBarPlugin:argCheck(frameType, 1, "string") + local child = CreateFrame(frameType, name, parent) + if parent then + child:SetFrameLevel(parent:GetFrameLevel() + 2) + end + child:SetScript("OnEnter", function() + if self.frame:GetScript("OnEnter") then + self.frame:GetScript("OnEnter")() + end + end) + child:SetScript("OnLeave", function() + if self.frame:GetScript("OnLeave") then + self.frame:GetScript("OnLeave")() + end + end) + if child:HasScript("OnClick") then + child:SetScript("OnClick", function() + if self.frame:HasScript("OnClick") and self.frame:GetScript("OnClick") then + self.frame:GetScript("OnClick")() + end + end) + end + if child:HasScript("OnDoubleClick") then + child:SetScript("OnDoubleClick", function() + if self.frame:HasScript("OnDoubleClick") and self.frame:GetScript("OnDoubleClick") then + self.frame:GetScript("OnDoubleClick")() + end + end) + end + child:SetScript("OnMouseDown", function() + if self.frame:GetScript("OnMouseDown") then + self.frame:GetScript("OnMouseDown")() + end + end) + child:SetScript("OnMouseUp", function() + if self.frame:GetScript("OnMouseUp") then + self.frame:GetScript("OnMouseUp")() + end + end) + child:SetScript("OnReceiveDrag", function() + if self.frame:GetScript("OnReceiveDrag") then + self.frame:GetScript("OnReceiveDrag")() + end + end) + 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 + Dewdrop:AddLine( + 'text', self:GetTitle(), + 'isTitle', true + ) + end + + if level == 1 then + 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 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, + '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 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[self.folderName] then + FuBar.db.profile.loadOnDemand[self.folderName] = {} + end + FuBar.db.profile.loadOnDemand[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.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[self.folderName] then + FuBar.db.profile.loadOnDemand[self.folderName] = {} + end + FuBar.db.profile.loadOnDemand[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 + 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 = {} + +local IsMinimapSquare +do + local value + function IsMinimapSquare() + if value == nil then + if not AceEvent or not AceEvent:IsFullyInitialized() then + return IsAddOnLoaded("CornerMinimap") or IsAddOnLoaded("SquareMinimap") or IsAddOnLoaded("Squeenix") + else + value = IsAddOnLoaded("CornerMinimap") or IsAddOnLoaded("SquareMinimap") or IsAddOnLoaded("Squeenix") and true or false + end + end + return value + end +end + +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 string.sub(path, 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 string.sub(this.plugin.minimapIcon:GetTexture(), 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 string.sub(this.plugin.minimapIcon:GetTexture(), 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 + if not IsMinimapSquare() then + x = math.cos(angle) * 80 + y = math.sin(angle) * 80 + else + x = 110 * math.cos(angle) + y = 110 * math.sin(angle) + 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 string.sub(this.plugin.minimapIcon:GetTexture(), 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) diff --git a/Payload/Interface/Addons/nampowersettings/libs/Tablet/Tablet-2.0.lua b/Payload/Interface/Addons/nampowersettings/libs/Tablet/Tablet-2.0.lua index 70f340d..9863a2b 100644 --- a/Payload/Interface/Addons/nampowersettings/libs/Tablet/Tablet-2.0.lua +++ b/Payload/Interface/Addons/nampowersettings/libs/Tablet/Tablet-2.0.lua @@ -1,2784 +1,2784 @@ ---[[ -Name: Tablet-2.0 -Revision: $Rev: 14636 $ -Author(s): ckknight (ckknight@gmail.com) -Website: http://ckknight.wowinterface.com/ -Documentation: http://wiki.wowace.com/index.php/Tablet-2.0 -SVN: http://svn.wowace.com/root/trunk/TabletLib/Tablet-2.0 -Description: A library to provide an efficient, featureful tooltip-style display. -Dependencies: AceLibrary, (optional) Dewdrop-2.0 -]] - -local MAJOR_VERSION = "Tablet-2.0" -local MINOR_VERSION = "$Revision: 14636 $" - -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." -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, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30, a31, a32, a33, a34, a35, a36, a37, a38, a39, a40, a41, a42, a43, a44, a45, a46, a47, a48, a49, a50, a51, a52, a53, a54, a55, a56, a57, a58, a59, a60) - local pos = table.getn(tree) - table.insert(tree, name) - table.insert(treeMemories, 0) - table.insert(treeTimes, 0) - local t, mem = GetTime(), gcinfo() - local r1, r2, r3, r4, r5, r6, r7, r8 = oldFunction(self, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30, a31, a32, a33, a34, a35, a36, a37, a38, a39, a40, a41, a42, a43, a44, a45, a46, a47, a48, a49, a50, a51, a52, a53, a54, a55, a56, a57, a58, a59, a60) - 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 MIN_TOOLTIP_SIZE = 200 -local Tablet = {} -local function getsecond(_, value) - return value -end -local Dewdrop -local sekeys -local CleanCategoryPool -local pool = {} - -local table_setn -do - local version = GetBuildInfo() - if string.find(version, "^2%.") then - -- 2.0.0 - table_setn = function() end - else - table_setn = table.setn - end -end - -local function del(t) - if t then - for k in pairs(t) do - t[k] = nil - end - setmetatable(t, nil) - table_setn(t, 0) - table.insert(pool, t) - end -end - -local new - -local function copy(parent) - local t - if table.getn(pool) > 0 then - t = table.remove(pool) - else - t = {} - end - if parent then - for k,v in pairs(parent) do - t[k] = v - end - table_setn(t, table.getn(parent)) - setmetatable(t, getmetatable(parent)) - end - return t -end - -function new(k1, v1, k2, v2, k3, v3, k4, v4, k5, v5, k6, v6, k7, v7, k8, v8, k9, v9, k10, v10, k11, v11, k12, v12, k13, v13, k14, v14, k15, v15, k16, v16, k17, v17, k18, v18, k19, v19, k20, v20, k21, v21, k22, v22, k23, v23, k24, v24, k25, v25, k26, v26, k27, v27, k28, v28, k29, v29, k30, v30) - local t - if table.getn(pool) > 0 then - t = table.remove(pool) - else - t = {} - end - if k1 then t[k1] = v1 - if k2 then t[k2] = v2 - if k3 then t[k3] = v3 - if k4 then t[k4] = v4 - if k5 then t[k5] = v5 - if k6 then t[k6] = v6 - if k7 then t[k7] = v7 - if k8 then t[k8] = v8 - if k9 then t[k9] = v9 - if k10 then t[k10] = v10 - if k11 then t[k11] = v11 - if k12 then t[k12] = v12 - if k13 then t[k13] = v13 - if k14 then t[k14] = v14 - if k15 then t[k15] = v15 - if k16 then t[k16] = v16 - if k17 then t[k17] = v17 - if k18 then t[k18] = v18 - if k19 then t[k19] = v19 - if k20 then t[k20] = v20 - if k21 then t[k21] = v21 - if k22 then t[k22] = v22 - if k23 then t[k23] = v23 - if k24 then t[k24] = v24 - if k25 then t[k25] = v25 - if k26 then t[k26] = v26 - if k27 then t[k27] = v27 - if k28 then t[k28] = v28 - if k29 then t[k29] = v29 - if k30 then t[k30] = v30 - end end end end end end end end end end end end end end end end end end end end end end end end end end end end end end - return t -end -local tmp -tmp = setmetatable({}, {__index = function(self, key) - local t = {} - tmp[key] = function(k1, v1, k2, v2, k3, v3, k4, v4, k5, v5, k6, v6, k7, v7, k8, v8, k9, v9, k10, v10, k11, v11, k12, v12, k13, v13, k14, v14, k15, v15, k16, v16, k17, v17, k18, v18, k19, v19, k20, v20, k21, v21, k22, v22, k23, v23, k24, v24, k25, v25, k26, v26, k27, v27, k28, v28, k29, v29, k30, v30) - for k in pairs(t) do - t[k] = nil - end - if k1 then t[k1] = v1 - if k2 then t[k2] = v2 - if k3 then t[k3] = v3 - if k4 then t[k4] = v4 - if k5 then t[k5] = v5 - if k6 then t[k6] = v6 - if k7 then t[k7] = v7 - if k8 then t[k8] = v8 - if k9 then t[k9] = v9 - if k10 then t[k10] = v10 - if k11 then t[k11] = v11 - if k12 then t[k12] = v12 - if k13 then t[k13] = v13 - if k14 then t[k14] = v14 - if k15 then t[k15] = v15 - if k16 then t[k16] = v16 - if k17 then t[k17] = v17 - if k18 then t[k18] = v18 - if k19 then t[k19] = v19 - if k20 then t[k20] = v20 - if k21 then t[k21] = v21 - if k22 then t[k22] = v22 - if k23 then t[k23] = v23 - if k24 then t[k24] = v24 - if k25 then t[k25] = v25 - if k26 then t[k26] = v26 - if k27 then t[k27] = v27 - if k28 then t[k28] = v28 - if k29 then t[k29] = v29 - if k30 then t[k30] = v30 - end end end end end end end end end end end end end end end end end end end end end end end end end end end end 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 = {} -do - local TabletData_mt = { __index = TabletData } - function TabletData:new(tablet) - if not testString then - testString = UIParent:CreateFontString() - testString:Hide() - end - local self = new() - self.categories = new() - self.id = 0 - self.width = 0--(MIN_TOOLTIP_SIZE - 20)*tablet.fontSizePercent - self.tablet = tablet - self.title = "Title" - setmetatable(self, TabletData_mt) - return self - 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.tablet == tooltip or self.tablet.registration.showTitleWhenDetached then - local info = new( - 'hideBlankLine', true, - 'text', self.title, - 'justify', "CENTER", - 'font', GameTooltipHeaderText, - 'isTitle', true - ) - 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 - local width - for k, v in ipairs(self.categories) do - if v.columns <= 2 then - width = v.x1 - else - width = v.x1 + v.x2 + v.x3 + v.x4 + v.x5 + v.x6 + (v.columns - 1) * 20 - 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) 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[table.getn(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 - table.insert(self.categories, 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 -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 - self.x1 = 0 - self.x2 = 0 - self.x3 = 0 - self.x4 = 0 - self.x5 = 0 - self.x6 = 0 - setmetatable(self, Category_mt) - self.lastWasTitle = nil - if self.text or self.text2 or self.text3 or self.text4 or self.text5 or self.text6 then - local x = new( - 'category', category, - 'text', self.text, - 'textR', self.textR or 1, - 'textG', self.textG or 1, - 'textB', self.textB or 1, - 'fakeChild', true, - 'func', self.func, - 'arg1', info.arg1, - 'arg2', self.arg2, - 'arg3', self.arg3, - '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, - 'justify2', self.justify2, - 'justify3', self.justify3, - 'justify4', self.justify4, - 'justify5', self.justify5, - 'justify6', self.justify6 - ) - 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 - x.text2 = self.text2 - x.text3 = self.text3 - x.text4 = self.text4 - x.text5 = self.text5 - x.text6 = self.text6 - x.text2R = self.text2R or self.textR2 or 1 - x.text2G = self.text2G or self.textG2 or 1 - x.text2B = self.text2B or self.textB2 or 1 - x.text3R = self.text3R or self.textR3 or 1 - x.text3G = self.text3G or self.textG3 or 1 - x.text3B = self.text3B or self.textB3 or 1 - x.text4R = self.text4R or self.textR4 or 1 - x.text4G = self.text4G or self.textG4 or 1 - x.text4B = self.text4B or self.textB4 or 1 - x.text5R = self.text5R or self.textR5 or 1 - x.text5G = self.text5G or self.textG5 or 1 - x.text5B = self.text5B or self.textB5 or 1 - x.text6R = self.text6R or self.textR6 or 1 - x.text6G = self.text6G or self.textG6 or 1 - x.text6B = self.text6B or self.textB6 or 1 - x.font2 = self.font2 - x.font3 = self.font3 - x.font4 = self.font4 - x.font5 = self.font5 - x.font6 = self.font6 - x.size2 = self.size2 - x.size3 = self.size3 - x.size4 = self.size4 - x.size5 = self.size5 - x.size6 = self.size6 - 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(k1, v1, k2, v2, k3, v3, k4, v4, k5, v5, k6, v6, k7, v7, k8, v8, k9, v9, k10, v10, k11, v11, k12, v12, k13, v13, k14, v14, k15, v15, k16, v16, k17, v17, k18, v18, k19, v19, k20, v20, k21, v21, k22, v22, k23, v23, k24, v24, k25, v25, k26, v26, k27, v27, k28, v28, k29, v29, k30, v30) - self.lastWasTitle = nil - local line - if type(k1) == "table" then - Line:new(self, k1, v1) - else - local info = new(k1, v1, k2, v2, k3, v3, k4, v4, k5, v5, k6, v6, k7, v7, k8, v8, k9, v9, k10, v10, k11, v11, k12, v12, k13, v13, k14, v14, k15, v15, k16, v16, k17, v17, k18, v18, k19, v19, k20, v20, k21, v21, k22, v22, k23, v23, k24, v24, k25, v25, k26, v26, k27, v27, k28, v28, k29, v29, k30, v30) - Line:new(self, info) - del(info) - end - end - - function Category:AddCategory(k1, v1, k2, v2, k3, v3, k4, v4, k5, v5, k6, v6, k7, v7, k8, v8, k9, v9, k10, v10, k11, v11, k12, v12, k13, v13, k14, v14, k15, v15, k16, v16, k17, v17, k18, v18, k19, v19, k20, v20, k21, v21, k22, v22, k23, v23, k24, v24, k25, v25, k26, v26, k27, v27, k28, v28, k29, v29, k30, v30) - local lastWasTitle = self.lastWasTitle - self.lastWasTitle = nil - local info - if type(k1) == "table" then - info = k1 - else - info = new(k1, v1, k2, v2, k3, v3, k4, v4, k5, v5, k6, v6, k7, v7, k8, v8, k9, v9, k10, v10, k11, v11, k12, v12, k13, v13, k14, v14, k15, v15, k16, v16, k17, v17, k18, v18, k19, v19, k20, v20, k21, v21, k22, v22, k23, v23, k24, v24, k25, v25, k26, v26, k27, v27, k28, v28, k29, v29, k30, v30) - end - if lastWasTitle or table.getn(self.lines) == 0 then - info.hideBlankLine = true - end - local cat = Category:new(self.tabletData, info, self) - table.insert(self.lines, cat) - 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 table.getn(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 - table.insert(category.lines, self) - end - setmetatable(self, Line_mt) - 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 - elseif columns == 3 then - if not self.justify then - self.justify = "LEFT" - end - if not self.justify2 then - self.justify2 = "CENTER" - end - if not self.justify3 then - self.justify3 = "RIGHT" - end - if self.wrap then - self.wrap2 = false - self.wrap3 = false - elseif self.wrap2 then - self.wrap3 = false - end - elseif columns == 4 then - if not self.justify then - self.justify = "LEFT" - end - if not self.justify2 then - self.justify2 = "CENTER" - end - if not self.justify3 then - self.justify3 = "CENTER" - end - if not self.justify4 then - self.justify4 = "RIGHT" - end - if self.wrap then - self.wrap2 = false - self.wrap3 = false - self.wrap4 = false - elseif self.wrap2 then - self.wrap3 = false - self.wrap4 = false - elseif self.wrap3 then - self.wrap4 = false - end - elseif columns == 5 then - if not self.justify then - self.justify = "LEFT" - end - if not self.justify2 then - self.justify2 = "CENTER" - end - if not self.justify3 then - self.justify3 = "CENTER" - end - if not self.justify4 then - self.justify4 = "CENTER" - end - if not self.justify5 then - self.justify5 = "RIGHT" - end - if self.wrap then - self.wrap2 = false - self.wrap3 = false - self.wrap4 = false - self.wrap5 = false - elseif self.wrap2 then - self.wrap3 = false - self.wrap4 = false - self.wrap5 = false - elseif self.wrap3 then - self.wrap4 = false - self.wrap5 = false - elseif self.wrap4 then - self.wrap5 = false - end - elseif columns == 6 then - if not self.justify then - self.justify = "LEFT" - end - if not self.justify2 then - self.justify2 = "CENTER" - end - if not self.justify3 then - self.justify3 = "CENTER" - end - if not self.justify4 then - self.justify4 = "CENTER" - end - if not self.justify5 then - self.justify5 = "CENTER" - end - if not self.justify6 then - self.justify6 = "RIGHT" - end - if self.wrap then - self.wrap2 = false - self.wrap3 = false - self.wrap4 = false - self.wrap5 = false - self.wrap6 = false - elseif self.wrap2 then - self.wrap3 = false - self.wrap4 = false - self.wrap5 = false - self.wrap6 = false - elseif self.wrap3 then - self.wrap4 = false - self.wrap5 = false - self.wrap6 = false - elseif self.wrap4 then - self.wrap5 = false - self.wrap6 = false - elseif self.wrap5 then - self.wrap6 = false - end - end - if self.textR2 then - self.text2R, self.textR2 = self.text2R or self.textR2 - self.text2G, self.textG2 = self.text2G or self.textG2 - self.text2B, self.textB2 = self.text2B or self.textB2 - if self.textR3 then - self.text3R, self.textR3 = self.text3R or self.textR3 - self.text3G, self.textG3 = self.text3G or self.textG3 - self.text3B, self.textB3 = self.text3B or self.textB3 - if self.textR4 then - self.text4R, self.textR4 = self.text4R or self.textR4 - self.text4G, self.textG4 = self.text4G or self.textG4 - self.text4B, self.textB4 = self.text4B or self.textB4 - if self.textR5 then - self.text5R, self.textR5 = self.text5R or self.textR5 - self.text5G, self.textG5 = self.text5G or self.textG5 - self.text5B, self.textB5 = self.text5B or self.textB5 - if self.textR5 then - self.text6R, self.textR6 = self.text6R or self.textR6 - self.text6G, self.textG6 = self.text6G or self.textG6 - self.text6B, self.textB6 = self.text6B or self.textB6 - end - 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 - if not self.font2 then - self.font2 = self.font - end - if not self.font3 then - self.font3 = self.font - end - if not self.font4 then - self.font4 = self.font - end - if not self.font5 then - self.font5 = self.font - end - if not self.font6 then - self.font6 = self.font - end - if not self.size then - _,self.size = self.font:GetFont() - end - if not self.size2 then - _,self.size2 = self.font2:GetFont() - end - if not self.size3 then - _,self.size3 = self.font3:GetFont() - end - if not self.size4 then - _,self.size4 = self.font4:GetFont() - end - if not self.size5 then - _,self.size5 = self.font5:GetFont() - end - if not self.size6 then - _,self.size6 = self.font6:GetFont() - end - - local fontSizePercent = category.tabletData.tablet.fontSizePercent - local w = 0 - self.checkWidth = 0 - if self.text then - if not self.wrap then - testString:SetWidth(0) - testString:SetFontObject(self.font) - local font,_,flags = testString:GetFont() - testString:SetFont(font, self.size * fontSizePercent, flags) - testString:SetText(self.text) - local checkWidth = self.hasCheck and self.size * fontSizePercent or 0 - self.checkWidth = checkWidth - w = testString:GetWidth() + self.indentation * fontSizePercent + checkWidth - if category.superCategory.x1 < w then - category.superCategory.x1 = w - end - else - if columns == 1 then - testString:SetWidth(0) - testString:SetFontObject(self.font) - local font,_,flags = testString:GetFont() - testString:SetFont(font, self.size * fontSizePercent, flags) - testString:SetText(self.text) - local checkWidth = self.hasCheck and self.size * fontSizePercent or 0 - self.checkWidth = checkWidth - w = testString:GetWidth() + 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 - testString:SetWidth(0) - testString:SetFontObject(self.font2) - local font,_,flags = testString:GetFont() - testString:SetFont(font, self.size2 * fontSizePercent, flags) - testString:SetText(self.text2) - w = w + 40 * fontSizePercent + testString:GetWidth() - 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 - testString:SetWidth(0) - testString:SetFontObject(self.font2) - local font,_,flags = testString:GetFont() - testString:SetFont(font, self.size2 * fontSizePercent, flags) - testString:SetText(self.text2) - local w = testString:GetWidth() - 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 - if self.text3 then - if not self.wrap3 then - testString:SetWidth(0) - testString:SetFontObject(self.font3) - local font,_,flags = testString:GetFont() - testString:SetFont(font, self.size3 * fontSizePercent, flags) - testString:SetText(self.text3) - local w = testString:GetWidth() - if category.superCategory.x3 < w then - category.superCategory.x3 = w - end - else - local w = MIN_TOOLTIP_SIZE / 2 - if category.superCategory.x3 < w then - category.superCategory.x3 = w - end - end - end - if columns >= 4 then - if self.text4 then - if not self.wrap4 then - testString:SetWidth(0) - testString:SetFontObject(self.font4) - local font,_,flags = testString:GetFont() - testString:SetFont(font, self.size4 * fontSizePercent, flags) - testString:SetText(self.text4) - w = testString:GetWidth() - if category.superCategory.x4 < w then - category.superCategory.x4 = w - end - else - local w = MIN_TOOLTIP_SIZE / 2 - if category.superCategory.x4 < w then - category.superCategory.x4 = w - end - end - end - if columns >= 5 then - if self.text5 then - if not self.wrap5 then - testString:SetWidth(0) - testString:SetFontObject(self.font5) - local font,_,flags = testString:GetFont() - testString:SetFont(font, self.size5 * fontSizePercent, flags) - testString:SetText(self.text5) - w = testString:GetWidth() - if category.superCategory.x5 < w then - category.superCategory.x5 = w - end - else - local w = MIN_TOOLTIP_SIZE / 2 - if category.superCategory.x5 < w then - category.superCategory.x5 = w - end - end - end - if columns >= 6 then - if self.text6 then - if not self.wrap6 then - testString:SetWidth(0) - testString:SetFontObject(self.font6) - local font,_,flags = testString:GetFont() - testString:SetFont(font, self.size6 * fontSizePercent, flags) - testString:SetText(self.text6) - w = testString:GetWidth() - if category.superCategory.x6 < w then - category.superCategory.x6 = w - end - else - local w = MIN_TOOLTIP_SIZE / 2 - if category.superCategory.x6 < w then - category.superCategory.x6 = w - end - end - 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 function button_OnEnter() - if type(this.self:GetScript("OnEnter")) == "function" then - this.self:GetScript("OnEnter")() - end - this.highlight:Show() -end - -local function button_OnLeave() - if type(this.self:GetScript("OnLeave")) == "function" then - this.self:GetScript("OnLeave")() - end - this.highlight:Hide() -end - -local function NewLine(self) - if self.maxLines <= self.numLines then - self.maxLines = self.maxLines + 1 - local button = CreateFrame("Button", nil, self) - button.indentation = 0 - local check = button:CreateTexture(nil, "ARTWORK") - local left = button:CreateFontString(nil, "ARTWORK") - local right = button:CreateFontString(nil, "ARTWORK") - local third = button:CreateFontString(nil, "ARTWORK") - local fourth = button:CreateFontString(nil, "ARTWORK") - local fifth = button:CreateFontString(nil, "ARTWORK") - local sixth = button:CreateFontString(nil, "ARTWORK") - local highlight = button:CreateTexture(nil, "BACKGROUND") - highlight:SetTexture("Interface\\QuestFrame\\UI-QuestTitleHighlight") - button.highlight = highlight - highlight:SetBlendMode("ADD") - highlight:SetAllPoints(button) - highlight:Hide() - table.insert(self.buttons, button) - table.insert(self.checks, check) - table.insert(self.lefts, left) - table.insert(self.rights, right) - table.insert(self.thirds, third) - table.insert(self.fourths, fourth) - table.insert(self.fifths, fifth) - table.insert(self.sixths, sixth) - left:SetWidth(0) - if self.maxLines == 1 then - left:SetFontObject(GameTooltipHeaderText) - right:SetFontObject(GameTooltipHeaderText) - third:SetFontObject(GameTooltipHeaderText) - fourth:SetFontObject(GameTooltipHeaderText) - fifth:SetFontObject(GameTooltipHeaderText) - sixth:SetFontObject(GameTooltipHeaderText) - left:SetJustifyH("CENTER") - button:SetPoint("TOPLEFT", self, "TOPLEFT", 8, -10) - else - left:SetFontObject(GameTooltipText) - right:SetFontObject(GameTooltipText) - third:SetFontObject(GameTooltipText) - fourth:SetFontObject(GameTooltipText) - fifth:SetFontObject(GameTooltipText) - sixth: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, "RIGHT", -12, 0) - check.shown = false - check:SetPoint("TOPLEFT", button, "TOPLEFT") - left:SetPoint("TOPLEFT", check, "TOPLEFT") - right:SetPoint("TOPLEFT", left, "TOPRIGHT", 40 * self.fontSizePercent, 0) - third:SetPoint("TOPLEFT", right, "TOPRIGHT", 20 * self.fontSizePercent, 0) - fourth:SetPoint("TOPLEFT", third, "TOPRIGHT", 20 * self.fontSizePercent, 0) - fifth:SetPoint("TOPLEFT", fourth, "TOPRIGHT", 20 * self.fontSizePercent, 0) - sixth:SetPoint("TOPLEFT", fifth, "TOPRIGHT", 20 * self.fontSizePercent, 0) - right:SetJustifyH("RIGHT") - 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() - left:Hide() - right:Hide() - third:Hide() - fourth:Hide() - fifth:Hide() - sixth:Hide() - end -end -NewLine = wrap(NewLine, "NewLine") - -local function GetMaxLinesPerScreen(self) - if self == tooltip then - return floor(50 / self.fontSizePercent) - else - return floor(30 / self.fontSizePercent) - end -end -GetMaxLinesPerScreen = wrap(GetMaxLinesPerScreen, "GetMaxLinesPerScreen") - -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) - else - tooltip = CreateFrame("Frame", "Tablet20Frame", UIParent) - self.tooltip = tooltip - tooltip.data = data - tooltip.detachedData = detachedData - tooltip:EnableMouse(true) - tooltip:EnableMouseWheel(true) - tooltip:SetFrameStrata("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.checks = {} - tooltip.lefts = {} - tooltip.rights = {} - tooltip.thirds = {} - tooltip.fourths = {} - tooltip.fifths = {} - tooltip.sixths = {} - 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.scroll = 0 - - tooltip:SetScript("OnUpdate", function() - if not tooltip.updating and not tooltip.enteredFrame then - tooltip.scroll = 0 - tooltip:Hide() - tooltip.registration.tooltip = nil - tooltip.registration = nil - end - end) - - tooltip:SetScript("OnEnter", function() - if tooltip.clickable then - tooltip.enteredFrame = true - end - end) - - tooltip:SetScript("OnLeave", function() - if not tooltip.updating then - tooltip.enteredFrame = false - end - end) - - tooltip:SetScript("OnMouseWheel", function() - tooltip.updating = true - tooltip:Scroll(arg1 < 0) - tooltip.updating = false - end) - - NewLine(tooltip) - - tooltip.scrollUp = tooltip:CreateFontString(nil, "ARTWORK") - tooltip.scrollUp:SetPoint("TOPLEFT", tooltip.buttons[1], "BOTTOMLEFT", 0, -2) - tooltip.scrollUp:SetPoint("RIGHT", tooltip, "RIGHT", 0, -10) - tooltip.scrollUp:SetFontObject(GameTooltipText) - tooltip.scrollUp:Hide() - local font,_,flags = tooltip.scrollUp:GetFont() - tooltip.scrollUp:SetFont(font, normalSize * tooltip.fontSizePercent, flags) - tooltip.scrollUp:SetJustifyH("CENTER") - tooltip.scrollUp:SetTextColor(1, 0.823529, 0) - tooltip.scrollUp:SetText(" ") - - tooltip.scrollDown = tooltip:CreateFontString(nil, "ARTWORK") - tooltip.scrollDown:SetPoint("TOPLEFT", tooltip.buttons[1], "BOTTOMLEFT", 0, -2) - tooltip.scrollDown:SetPoint("RIGHT", tooltip, "RIGHT", 0, -10) - tooltip.scrollDown:SetFontObject(GameTooltipText) - tooltip.scrollDown:Hide() - local font,_,flags = tooltip.scrollUp:GetFont() - tooltip.scrollDown:SetFont(font, normalSize * tooltip.fontSizePercent, flags) - tooltip.scrollDown:SetJustifyH("CENTER") - tooltip.scrollDown:SetTextColor(1, 0.823529, 0) - tooltip.scrollDown:SetText(" ") - - 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 = self.checks[i] - 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 - - local maxWidth = tabletData and tabletData.width or self:GetWidth() - 20 - local hasWrap = false - local screenWidth = GetScreenWidth() - local scrollMax = self.numLines - if scrollMax > GetMaxLinesPerScreen(self) + self.scroll then - scrollMax = GetMaxLinesPerScreen(self) + self.scroll - end - local numColumns - - local height = 20 - if scrollMax ~= self.numLines then - self.scrollDown:SetWidth(maxWidth) - height = height + self.scrollDown:GetHeight() + 2 - end - if self.scroll ~= 0 then - self.scrollUp:SetWidth(maxWidth) - height = height + self.scrollUp:GetHeight() + 2 - end - self:SetWidth(maxWidth + 20) - - local tmp = self.scroll + 1 - if tmp ~= 1 then - tmp = tmp + 1 - end - for i = 1, self.numLines do - if i < tmp or i > scrollMax or (i == scrollMax and i ~= self.numLines) then - self.buttons[i]:ClearAllPoints() - self.buttons[i]:Hide() - else - local button = self.buttons[i] - local left = self.lefts[i] - local right = self.rights[i] - local check = self.checks[i] - button:SetWidth(maxWidth) - button:SetHeight(math.max(left:GetHeight(), right:GetHeight())) - height = height + button:GetHeight() + 2 - if i == self.scroll + 1 then - button:SetPoint("TOPLEFT", self, "TOPLEFT", 10, -10) - 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 - end - if self.scroll ~= 0 then - self.scrollUp:SetPoint("TOPLEFT", self, "TOPLEFT", 10, -10) - self.buttons[self.scroll + 2]:SetPoint("TOPLEFT", self.scrollUp, "BOTTOMLEFT", 0, -2) - self.scrollUp:SetText(SCROLL_UP .. " (" .. self.scroll + 2 .. " / " .. self.numLines .. ")") - self.scrollUp:Show() - else - self.scrollUp:Hide() - end - if scrollMax ~= self.numLines and self.buttons[scrollMax - 1] then - self.scrollDown:SetPoint("TOPLEFT", self.buttons[scrollMax - 1], "BOTTOMLEFT", 0, -2) - self.scrollDown:SetText(SCROLL_DOWN .. " (" .. scrollMax - 1 .. " / " .. self.numLines .. ")") - self.scrollDown:Show() - else - self.scrollDown:Hide() - end - self:SetHeight(height) - end - tooltip.Show = wrap(tooltip.Show, "tooltip:Show") - - local lastMouseDown - local function button_OnClick() - if this.self:HasScript("OnClick") and type(this.self:GetScript("OnClick")) == "function" then - this.self:GetScript("OnClick")() - end - if arg1 == "RightButton" then - if this.self:HasScript("OnClick") and type(this.self:GetScript("OnClick")) == "function" then - this.self:GetScript("OnClick")() - 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 - this.func(this.a1, this.a2, this.a3) - if this.self then - this.self.preventRefresh = false - this.self:children() - this.self.updating = false - end - end - end - end - local function button_OnMouseUp() - if this.self:HasScript("OnMouseUp") and type(this.self:GetScript("OnMouseUp")) == "function" then - this.self:GetScript("OnMouseUp")() - 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() - if this.self:HasScript("OnMouseDown") and type(this.self:GetScript("OnMouseDown")) == "function" then - this.self:GetScript("OnMouseDown")() - 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 - 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 x1, x2, x3, x4, x5, x6 - if category then - x1, x2, x3, x4, x5, x6 = category.x1, category.x2, category.x3, category.x4, category.x5, category.x6 - else - x1, x2, x3, x4, x5, x6 = 0, 0, 0, 0, 0, 0 - end - if info.isTitle then - justAddedTitle = true - end - - self.numLines = self.numLines + 1 - NewLine(self) - self.lefts[self.numLines]:Show() - self.buttons[self.numLines]:Show() - num = self.numLines - - local button = self.buttons[num] - button.indentation = info.indentation - local left = self.lefts[num] - local right = self.rights[num] - local third = self.thirds[num] - local fourth = self.fourths[num] - local fifth = self.fifths[num] - local sixth = self.sixths[num] - local check = self.checks[num] - do -- if columns >= 1 then - left:SetFontObject(info.font) - left:SetText(text) - left:Show() - if info.textR and info.textG and info.textB then - left:SetTextColor(info.textR, info.textG, info.textB) - else - left:SetTextColor(1, 0.823529, 0) - end - local a,_,b = left:GetFont() - left:SetFont(a, info.size * fontSizePercent, b) - left:SetJustifyH(info.justify) - if columns < 2 then - right:SetText(nil) - right:Hide() - right:SetPoint("TOPLEFT", left, "TOPRIGHT", 40 * fontSizePercent, 0) - right:SetPoint("TOPRIGHT", button, "TOPRIGHT", -5, 0) - third:SetText(nil) - third:Hide() - fourth:SetText(nil) - fourth:Hide() - fifth:SetText(nil) - fifth:Hide() - sixth:SetText(nil) - sixth:Hide() - else - right:SetFontObject(info.font2) - right:SetText(info.text2) - right:Show() - if info.text2R and info.text2G and info.text2B then - right:SetTextColor(info.text2R, info.text2G, info.text2B) - else - right:SetTextColor(1, 0.823529, 0) - end - local a,_,b = right:GetFont() - right:SetFont(a, info.size2 * fontSizePercent, b) - right:SetJustifyH(info.justify2) - if columns < 3 then - right:SetPoint("TOPLEFT", left, "TOPRIGHT", 40 * fontSizePercent, 0) - right:SetPoint("TOPRIGHT", button, "TOPRIGHT", -5, 0) - third:SetText(nil) - third:Hide() - fourth:SetText(nil) - fourth:Hide() - fifth:SetText(nil) - fifth:Hide() - sixth:SetText(nil) - sixth:Hide() - else - third:SetFontObject(info.font3) - third:SetText(info.text3) - third:Show() - if info.text3R and info.text3G and info.text3B then - third:SetTextColor(info.text3R, info.text3G, info.text3B) - else - third:SetTextColor(1, 0.823529, 0) - end - local a,_,b = third:GetFont() - third:SetFont(a, info.size3 * fontSizePercent, b) - right:ClearAllPoints() - right:SetPoint("TOPLEFT", left, "TOPRIGHT", 20 * fontSizePercent, 0) - third:SetJustifyH(info.justify3) - if columns < 4 then - fourth:SetText(nil) - fourth:Hide() - fifth:SetText(nil) - fifth:Hide() - sixth:SetText(nil) - sixth:Hide() - else - fourth:SetFontObject(info.font4) - fourth:SetText(info.text4) - fourth:Show() - if info.text4R and info.text4G and info.text4B then - fourth:SetTextColor(info.text4R, info.text4G, info.text4B) - else - fourth:SetTextColor(1, 0.823529, 0) - end - local a,_,b = fourth:GetFont() - fourth:SetFont(a, info.size4 * fontSizePercent, b) - fourth:SetJustifyH(info.justify4) - if columns < 5 then - fifth:SetText(nil) - fifth:Hide() - sixth:SetText(nil) - sixth:Hide() - else - fifth:SetFontObject(info.font5) - fifth:SetText(info.text5) - fifth:Show() - if info.text5R and info.text5G and info.text5B then - fifth:SetTextColor(info.text5R, info.text5G, info.text5B) - else - fifth:SetTextColor(1, 0.823529, 0) - end - local a,_,b = fourth:GetFont() - fifth:SetFont(a, info.size5 * fontSizePercent, b) - fifth:SetJustifyH(info.justify5) - if columns < 6 then - sixth:SetText(nil) - sixth:Hide() - else - sixth:SetFontObject(info.font6) - sixth:SetText(info.text6) - sixth:Show() - if info.text5R and info.text6G and info.text6B then - sixth:SetTextColor(info.text6R, info.text6G, info.text6B) - else - sixth:SetTextColor(1, 0.823529, 0) - end - local a,_,b = fourth:GetFont() - sixth:SetFont(a, info.size6 * fontSizePercent, b) - sixth:SetJustifyH(info.justify6) - end - end - end - end - end - end - - check:SetWidth(info.size) - check:SetHeight(info.size) - check.width = info.size - 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 - else - if info.checkIcon then - check:SetTexture(info.checkIcon) - if string.sub(info.checkIcon, 1, 16) == "Interface\\Icons\\" then - check:SetTexCoord(0.05, 0.95, 0.05, 0.95) - else - check:SetTexCoord(0, 1, 0, 1) - end - else - check:SetTexture("Interface\\Buttons\\UI-CheckBox-Check") - check:SetWidth(info.size * 1.5) - check:SetHeight(info.size * 1.5) - check.width = info.size * 1.2 - check:SetTexCoord(0, 1, 0, 1) - end - check:SetAlpha(info.checked and 1 or 0) - end - left:SetPoint("TOPLEFT", check, "TOPLEFT", check.width, 0) - else - left:SetPoint("TOPLEFT", check, "TOPLEFT") - end - if columns == 1 then - left:SetWidth(maxWidth) - elseif columns == 2 then - left:SetWidth(0) - right:SetWidth(0) - if info.wrap then - left:SetWidth(maxWidth - right:GetWidth() - 40 * fontSizePercent) - elseif info.wrap2 then - right:SetWidth(maxWidth - left:GetWidth() - 40 * fontSizePercent) - end - right:ClearAllPoints() - right:SetPoint("TOPRIGHT", button, "TOPRIGHT", 0, 0) - if not info.text2 then - left:SetJustifyH(info.justify or "LEFT") - end - elseif columns == 3 then - left:SetWidth(x1 - info.checkWidth) - right:SetWidth(x2) - third:SetWidth(x3) - right:ClearAllPoints() - local num = (category.tabletData.width - x1 - x2 - x3) / 2 - right:SetPoint("TOPLEFT", left, "TOPRIGHT", num, 0) - third:SetPoint("TOPLEFT", right, "TOPRIGHT", num, 0) - elseif columns == 4 then - left:SetWidth(x1 - info.checkWidth) - right:SetWidth(x2) - third:SetWidth(x3) - fourth:SetWidth(x4) - local num = (category.tabletData.width - x1 - x2 - x3 - x4) / 3 - right:SetPoint("TOPLEFT", left, "TOPRIGHT", num, 0) - third:SetPoint("TOPLEFT", right, "TOPRIGHT", num, 0) - fourth:SetPoint("TOPLEFT", third, "TOPRIGHT", num, 0) - elseif columns == 5 then - left:SetWidth(x1 - info.checkWidth) - right:SetWidth(x2) - third:SetWidth(x3) - fourth:SetWidth(x4) - fifth:SetWidth(x5) - local num = (category.tabletData.width - x1 - x2 - x3 - x4 - x5) / 4 - right:SetPoint("TOPLEFT", left, "TOPRIGHT", num, 0) - third:SetPoint("TOPLEFT", right, "TOPRIGHT", num, 0) - fourth:SetPoint("TOPLEFT", third, "TOPRIGHT", num, 0) - fifth:SetPoint("TOPLEFT", fourth, "TOPRIGHT", num, 0) - elseif columns == 6 then - left:SetWidth(x1 - info.checkWidth) - right:SetWidth(x2) - third:SetWidth(x3) - fourth:SetWidth(x4) - fifth:SetWidth(x5) - sixth:SetWidth(x6) - local num = (category.tabletData.width - x1 - x2 - x3 - x4 - x5 - x6) / 5 - right:SetPoint("TOPLEFT", left, "TOPRIGHT", num, 0) - third:SetPoint("TOPLEFT", right, "TOPRIGHT", num, 0) - fourth:SetPoint("TOPLEFT", third, "TOPRIGHT", num, 0) - fifth:SetPoint("TOPLEFT", fourth, "TOPRIGHT", num, 0) - sixth:SetPoint("TOPLEFT", fifth, "TOPRIGHT", num, 0) - end - if not self.locked or IsAltKeyDown() then - local func = info.func - if func then - if type(func) == "string" then - Tablet:assert(type(info.arg1) == "table", "Cannot call method " .. info.func .. " on a non-table") - func = info.arg1[func] - Tablet:assert(type(func) == "function", "Method " .. info.func .. " nonexistant") - end - Tablet:assert(type(func) == "function", "func must be a function or method") - button.func = func - button.a1 = info.arg1 - button.a2 = info.arg2 - button.a3 = info.arg3 - button.self = self - button:SetScript("OnMouseUp", button_OnMouseUp) - button:SetScript("OnMouseDown", button_OnMouseDown) - 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:SetScript("OnClick", nil) - button:EnableMouse(false) - end - else - button:SetScript("OnMouseDown", nil) - button:SetScript("OnMouseUp", 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 ~= 1 and percent or nil - end - self.scrollUp:SetFont(font, normalSize * self.fontSizePercent, flags) - self.scrollDown:SetFont(font, normalSize * self.fontSizePercent, flags) - local ratio = self.fontSizePercent / lastSize - for i = 1, self.numLines do - local left = self.lefts[i] - local right = self.rights[i] - local third = self.thirds[i] - local fourth = self.fourths[i] - local fifth = self.fifths[i] - local sixth = self.sixths[i] - local check = self.checks[i] - local font, size, flags = left:GetFont() - left:SetFont(font, size * ratio, flags) - font, size, flags = right:GetFont() - right:SetFont(font, size * ratio, flags) - font, size, flags = third:GetFont() - third:SetFont(font, size * ratio, flags) - font, size, flags = fourth:GetFont() - fourth:SetFont(font, size * ratio, flags) - font, size, flags = fifth:GetFont() - fifth:SetFont(font, size * ratio, flags) - font, size, flags = sixth:GetFont() - sixth:SetFont(font, size * ratio, flags) - 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: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) - 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) - if down then - if IsShiftKeyDown() then - self.scroll = self.numLines - GetMaxLinesPerScreen(self) - else - self.scroll = self.scroll + 3 - end - else - if IsShiftKeyDown() then - self.scroll = 0 - else - self.scroll = self.scroll - 3 - end - end - if self.scroll > self.numLines - GetMaxLinesPerScreen(self) then - self.scroll = self.numLines - GetMaxLinesPerScreen(self) - end - if self.scroll < 0 then - self.scroll = 0 - end - if self:IsShown() then - self:Show() - end - end - tooltip.Scroll = wrap(tooltip.Scroll, "tooltip:Scroll") - - function tooltip.Detach(tooltip) - local owner = tooltip.owner - tooltip:Hide() - self:assert(tooltip.detachedData, "You cannot detach if detachedData is not present") - tooltip.detachedData.detached = true - local detached = AcquireDetachedFrame(self, tooltip.registration, tooltip.data, tooltip.detachedData) - - detached.menu, tooltip.menu = tooltip.menu, nil - detached.children = tooltip.children - tooltip.children = 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 - end - end -end -ReleaseDetachedFrame = wrap(ReleaseDetachedFrame, "ReleaseDetachedFrame") - -local StartCheckingAlt, StopCheckingAlt -do - local frame - function StartCheckingAlt(func) - if not frame then - frame = CreateFrame("Frame") - end - local last = IsAltKeyDown() - frame:SetScript("OnUpdate", function() - local now = IsAltKeyDown() - if last ~= now then - last = now - func() - end - end) - end - function StopCheckingAlt() - if frame then - frame:SetScript("OnUpdate", nil) - 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:SetPoint(detachedData.anchor or "CENTER", UIParent, detachedData.anchor or "CENTER", detachedData.offsetx or 0, detachedData.offsety or 0) - detached.registration = registration - registration.tooltip = detached - 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")() - end - arg1 = a1 - end - end - end - end) - if not tooltip then - AcquireFrame(self, {}) - end - local detached = CreateFrame("Frame", "Tablet20DetachedFrame" .. (table.getn(detachedTooltips) + 1), UIParent) - table.insert(detachedTooltips, detached) - detached.notInUse = true - detached:EnableMouse(not data.locked) - detached:EnableMouseWheel(true) - detached:SetMovable(true) - detached:SetPoint(data.anchor or "CENTER", UIParent, 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.checks = {} - detached.lefts = {} - detached.rights = {} - detached.thirds = {} - detached.fourths = {} - detached.fifths = {} - detached.sixths = {} - detached.transparency = 0.75 - detached.r = 0 - detached.g = 0 - detached.b = 0 - detached:SetFrameStrata("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.scroll = 0 - detached:EnableMouse(not detached.locked) - - local width = GetScreenWidth() - local height = GetScreenHeight() - detached:SetScript("OnMouseDown", function() - if arg1 == "LeftButton" then - detached:StartMoving() - detached.moving = true - end - end) - - detached:SetScript("OnMouseUp", function() - if arg1 == "LeftButton" then - 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, UIParent, 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 - end) - - 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 - Dewdrop:AddLine( - 'text', LOCK, - 'tooltipTitle', LOCK, - 'tooltipText', LOCK_DESC, - 'checked', detached:IsLocked(), - 'arg1', detached, - 'func', "Lock", - 'closeWhenClicked', not detached:IsLocked() - ) - 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 - ) - - NewLine(detached) - - detached.scrollUp = detached:CreateFontString(nil, "ARTWORK") - detached.scrollUp:SetPoint("TOPLEFT", detached.buttons[1], "BOTTOMLEFT", 0, -2) - detached.scrollUp:SetPoint("RIGHT", detached, "RIGHT", 0, -10) - detached.scrollUp:SetFontObject(GameTooltipText) - detached.scrollUp:Hide() - local font,_,flags = detached.scrollUp:GetFont() - detached.scrollUp:SetFont(font, normalSize * detached.fontSizePercent, flags) - detached.scrollUp:SetJustifyH("CENTER") - detached.scrollUp:SetTextColor(1, 0.823529, 0) - detached.scrollUp:SetText(" ") - - detached.scrollDown = detached:CreateFontString(nil, "ARTWORK") - detached.scrollDown:SetPoint("TOPLEFT", detached.buttons[1], "BOTTOMLEFT", 0, -2) - detached.scrollDown:SetPoint("RIGHT", detached, "RIGHT", 0, -10) - detached.scrollDown:SetFontObject(GameTooltipText) - detached.scrollDown:Hide() - local font,_,flags = detached.scrollUp:GetFont() - detached.scrollDown:SetFont(font, normalSize * detached.fontSizePercent, flags) - detached.scrollDown:SetJustifyH("CENTER") - detached.scrollDown:SetTextColor(1, 0.823529, 0) - detached.scrollDown:SetText(" ") - - detached:SetScript("OnMouseWheel", function() - 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) - self:assert(detached, "Detached tooltip not given.") - self:assert(detached.AddLine, "detached argument not a Tooltip.") - self:assert(detached.owner, "Detached tooltip has no owner.") - self:assert(not detached.notInUse, "Detached tooltip not in use.") - 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 - end - return - else - self:argCheck(parent, 2, "table", "string") - end - local info = self.registry[parent] - self:assert(info, "You cannot close a tablet with an unregistered parent frame.") - 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() - tooltip.registration.tooltip = nil - tooltip.registration = nil - end -end -Tablet.Close = wrap(Tablet.Close, "Tablet:Close") - -local currentFrame -local currentTabletData - -function Tablet:Open(parent) - self:argCheck(parent, 2, "table", "string") - local info = self.registry[parent] - self:assert(info, "You cannot open a tablet with an unregistered parent frame.") - self:Close() - local data = info.data - local detachedData = info.detachedData - 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 - local children = info.children - function frame:children() - if not self.preventRefresh then - currentFrame = self - currentTabletData = TabletData:new(self) - self:ClearLines() - if children then - children() - end - currentTabletData:Display(currentFrame) - self:Show(currentTabletData) - currentTabletData:del() - currentTabletData = nil - currentFrame = nil - end - end - frame:SetOwner(parent) - frame:children() - local point = info.point - local relativePoint = info.point - 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 - if not point then - point = "CENTER" - end - if not relativePoint then - relativePoint = point - end - frame:ClearAllPoints() - if type(parent) ~= "string" then - frame:SetPoint(point, parent, 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(parent) ~= "string" then - frame:SetPoint(point, parent, relativePoint, -offsetx, -offsety) - end - - if detachedData and (info.cantAttach or detachedData.detached) and frame == tooltip then - detachedData.detached = false - frame:Detach() - end -end -Tablet.Open = wrap(Tablet.Open, "Tablet:Open") - -function Tablet:Register(parent, k1, v1, k2, v2, k3, v3, k4, v4, k5, v5, k6, v6, k7, v7, k8, v8, k9, v9, k10, v10, k11, v11, k12, v12, k13, v13, k14, v14, k15, v15, k16, v16, k17, v17, k18, v18, k19, v19, k20, v20, k21, v21, k22, v22, k23, v23, k24, v24, k25, v25, k26, v26, k27, v27, k28, v28, k29, v29, k30, v30) - self:argCheck(parent, 2, "table", "string") - if self.registry[parent] then - self:Unregister(parent) - end - local info - if type(k1) == "table" and k1[0] then - self:assert(type(self.registry[k1]) == "table", "Other parent not registered") - info = copy(self.registry[k1]) - if type(v1) == "function" then - info.point = v1 - info.relativePoint = nil - end - else - info = new(k1, v1, k2, v2, k3, v3, k4, v4, k5, v5, k6, v6, k7, v7, k8, v8, k9, v9, k10, v10, k11, v11, k12, v12, k13, v13, k14, v14, k15, v15, k16, v16, k17, v17, k18, v18, k19, v19, k20, v20, k21, v21, k22, v22, k23, v23, k24, v24, k25, v25, k26, v26, k27, v27, k28, v28, k29, v29, k30, v30) - 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 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 not Dewdrop:IsOpen(parent) then - self:Open(parent) - self.tooltip.enteredFrame = true - end - end - end) - local script = parent:GetScript("OnLeave") - parent:SetScript("OnLeave", function() - if script then - script() - end - if self.registry[parent] then - if self.tooltip and (not data or not detachedData or not detachedData.detached) then - self.tooltip.enteredFrame = false - 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") - self:assert(self.registry[parent], "You cannot unregister a parent frame if it has not been registered already.") - 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 currentCategoryInfo -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(k1, v1, k2, v2, k3, v3, k4, v4, k5, v5, k6, v6, k7, v7, k8, v8, k9, v9, k10, v10, k11, v11, k12, v12, k13, v13, k14, v14, k15, v15, k16, v16, k17, v17, k18, v18, k19, v19, k20, v20, k21, v21, k22, v22, k23, v23, k24, v24, k25, v25, k26, v26, k27, v27, k28, v28, k29, v29, k30, v30) - self:assert(currentFrame, "You must add categories in within a registration.") - local info = new(k1, v1, k2, v2, k3, v3, k4, v4, k5, v5, k6, v6, k7, v7, k8, v8, k9, v9, k10, v10, k11, v11, k12, v12, k13, v13, k14, v14, k15, v15, k16, v16, k17, v17, k18, v18, k19, v19, k20, v20, k21, v21, k22, v22, k23, v23, k24, v24, k25, v25, k26, v26, k27, v27, k28, v28, k29, v29, k30, v30) - local cat = currentTabletData:AddCategory(info) - del(info) - return cat -end -Tablet.AddCategory = wrap(Tablet.AddCategory, "Tablet:AddCategory") - -function Tablet:SetHint(text) - self:assert(currentFrame, "You must set hint within a registration.") - self:assert(not currentCategoryInfo, "You cannot set hint in a category.") - currentTabletData:SetHint(text) -end -Tablet.SetHint = wrap(Tablet.SetHint, "Tablet:SetHint") - -function Tablet:SetTitle(text) - self:assert(currentFrame, "You must set title within a registration") - self:assert(not currentCategoryInfo, "You cannot set title in a category.") - currentTabletData:SetTitle(text) -end -Tablet.SetTitle = wrap(Tablet.SetTitle, "Tablet:SetTitle") - -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:assert(false, "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:assert(false, "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 - local data = info.data - local detachedData = info.detachedData - if info.tooltip then - info.tooltip:SetTransparency(percent) - else - 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:assert(false, "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:assert(parent, "You must provide a parent frame to check transparency") - 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:assert(false, "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:assert(parent, "You must provide a 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] - self:assert(info, "You cannot detach tablet with an unregistered parent frame.") - self:assert(info.detachedData, "You cannot detach tablet without a data field.") - 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 - local children = info.children - function detached:children() - if not self.preventRefresh then - currentFrame = self - currentTabletData = TabletData:new(self) - self:ClearLines() - if children then - children() - end - currentTabletData:Display(currentFrame) - self:Show(currentTabletData) - currentTabletData:del() - currentTabletData = nil - currentFrame = nil - 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] - self:assert(info, "You cannot detach tablet with an unregistered parent frame.") - self:assert(info.detachedData, "You cannot attach tablet without a data field.") - 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] - self:assert(info, "You cannot check tablet with an unregistered parent frame.") - 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] - self:assert(info, "You cannot refresh tablet with an unregistered parent frame.") - 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] - self:assert(info, "You cannot detach tablet with an unregistered parent frame.") - 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] - self:assert(info, "You cannot detach tablet with an unregistered parent frame.") - 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] - self:assert(info, "You cannot detach tablet with an unregistered parent frame.") - 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() - self:assert(duration and times and memories) - local t = new() - for method in pairs(memories) do - table.insert(t, 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)) - table_setn(t, 0) - 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 - else - self.registry = {} - self.onceRegistered = {} - end - - tooltip = self.tooltip - - if oldDeactivate then - oldDeactivate(oldLib) - end -end - -local function deactivate(self) - StopCheckingAlt() -end - -AceLibrary:Register(Tablet, MAJOR_VERSION, MINOR_VERSION, activate, deactivate) +--[[ +Name: Tablet-2.0 +Revision: $Rev: 14636 $ +Author(s): ckknight (ckknight@gmail.com) +Website: http://ckknight.wowinterface.com/ +Documentation: http://wiki.wowace.com/index.php/Tablet-2.0 +SVN: http://svn.wowace.com/root/trunk/TabletLib/Tablet-2.0 +Description: A library to provide an efficient, featureful tooltip-style display. +Dependencies: AceLibrary, (optional) Dewdrop-2.0 +]] + +local MAJOR_VERSION = "Tablet-2.0" +local MINOR_VERSION = "$Revision: 14636 $" + +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." +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, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30, a31, a32, a33, a34, a35, a36, a37, a38, a39, a40, a41, a42, a43, a44, a45, a46, a47, a48, a49, a50, a51, a52, a53, a54, a55, a56, a57, a58, a59, a60) + local pos = table.getn(tree) + table.insert(tree, name) + table.insert(treeMemories, 0) + table.insert(treeTimes, 0) + local t, mem = GetTime(), gcinfo() + local r1, r2, r3, r4, r5, r6, r7, r8 = oldFunction(self, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30, a31, a32, a33, a34, a35, a36, a37, a38, a39, a40, a41, a42, a43, a44, a45, a46, a47, a48, a49, a50, a51, a52, a53, a54, a55, a56, a57, a58, a59, a60) + 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 MIN_TOOLTIP_SIZE = 200 +local Tablet = {} +local function getsecond(_, value) + return value +end +local Dewdrop +local sekeys +local CleanCategoryPool +local pool = {} + +local table_setn +do + local version = GetBuildInfo() + if string.find(version, "^2%.") then + -- 2.0.0 + table_setn = function() end + else + table_setn = table.setn + end +end + +local function del(t) + if t then + for k in pairs(t) do + t[k] = nil + end + setmetatable(t, nil) + table_setn(t, 0) + table.insert(pool, t) + end +end + +local new + +local function copy(parent) + local t + if table.getn(pool) > 0 then + t = table.remove(pool) + else + t = {} + end + if parent then + for k,v in pairs(parent) do + t[k] = v + end + table_setn(t, table.getn(parent)) + setmetatable(t, getmetatable(parent)) + end + return t +end + +function new(k1, v1, k2, v2, k3, v3, k4, v4, k5, v5, k6, v6, k7, v7, k8, v8, k9, v9, k10, v10, k11, v11, k12, v12, k13, v13, k14, v14, k15, v15, k16, v16, k17, v17, k18, v18, k19, v19, k20, v20, k21, v21, k22, v22, k23, v23, k24, v24, k25, v25, k26, v26, k27, v27, k28, v28, k29, v29, k30, v30) + local t + if table.getn(pool) > 0 then + t = table.remove(pool) + else + t = {} + end + if k1 then t[k1] = v1 + if k2 then t[k2] = v2 + if k3 then t[k3] = v3 + if k4 then t[k4] = v4 + if k5 then t[k5] = v5 + if k6 then t[k6] = v6 + if k7 then t[k7] = v7 + if k8 then t[k8] = v8 + if k9 then t[k9] = v9 + if k10 then t[k10] = v10 + if k11 then t[k11] = v11 + if k12 then t[k12] = v12 + if k13 then t[k13] = v13 + if k14 then t[k14] = v14 + if k15 then t[k15] = v15 + if k16 then t[k16] = v16 + if k17 then t[k17] = v17 + if k18 then t[k18] = v18 + if k19 then t[k19] = v19 + if k20 then t[k20] = v20 + if k21 then t[k21] = v21 + if k22 then t[k22] = v22 + if k23 then t[k23] = v23 + if k24 then t[k24] = v24 + if k25 then t[k25] = v25 + if k26 then t[k26] = v26 + if k27 then t[k27] = v27 + if k28 then t[k28] = v28 + if k29 then t[k29] = v29 + if k30 then t[k30] = v30 + end end end end end end end end end end end end end end end end end end end end end end end end end end end end end end + return t +end +local tmp +tmp = setmetatable({}, {__index = function(self, key) + local t = {} + tmp[key] = function(k1, v1, k2, v2, k3, v3, k4, v4, k5, v5, k6, v6, k7, v7, k8, v8, k9, v9, k10, v10, k11, v11, k12, v12, k13, v13, k14, v14, k15, v15, k16, v16, k17, v17, k18, v18, k19, v19, k20, v20, k21, v21, k22, v22, k23, v23, k24, v24, k25, v25, k26, v26, k27, v27, k28, v28, k29, v29, k30, v30) + for k in pairs(t) do + t[k] = nil + end + if k1 then t[k1] = v1 + if k2 then t[k2] = v2 + if k3 then t[k3] = v3 + if k4 then t[k4] = v4 + if k5 then t[k5] = v5 + if k6 then t[k6] = v6 + if k7 then t[k7] = v7 + if k8 then t[k8] = v8 + if k9 then t[k9] = v9 + if k10 then t[k10] = v10 + if k11 then t[k11] = v11 + if k12 then t[k12] = v12 + if k13 then t[k13] = v13 + if k14 then t[k14] = v14 + if k15 then t[k15] = v15 + if k16 then t[k16] = v16 + if k17 then t[k17] = v17 + if k18 then t[k18] = v18 + if k19 then t[k19] = v19 + if k20 then t[k20] = v20 + if k21 then t[k21] = v21 + if k22 then t[k22] = v22 + if k23 then t[k23] = v23 + if k24 then t[k24] = v24 + if k25 then t[k25] = v25 + if k26 then t[k26] = v26 + if k27 then t[k27] = v27 + if k28 then t[k28] = v28 + if k29 then t[k29] = v29 + if k30 then t[k30] = v30 + end end end end end end end end end end end end end end end end end end end end end end end end end end end end 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 = {} +do + local TabletData_mt = { __index = TabletData } + function TabletData:new(tablet) + if not testString then + testString = UIParent:CreateFontString() + testString:Hide() + end + local self = new() + self.categories = new() + self.id = 0 + self.width = 0--(MIN_TOOLTIP_SIZE - 20)*tablet.fontSizePercent + self.tablet = tablet + self.title = "Title" + setmetatable(self, TabletData_mt) + return self + 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.tablet == tooltip or self.tablet.registration.showTitleWhenDetached then + local info = new( + 'hideBlankLine', true, + 'text', self.title, + 'justify', "CENTER", + 'font', GameTooltipHeaderText, + 'isTitle', true + ) + 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 + local width + for k, v in ipairs(self.categories) do + if v.columns <= 2 then + width = v.x1 + else + width = v.x1 + v.x2 + v.x3 + v.x4 + v.x5 + v.x6 + (v.columns - 1) * 20 + 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) 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[table.getn(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 + table.insert(self.categories, 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 +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 + self.x1 = 0 + self.x2 = 0 + self.x3 = 0 + self.x4 = 0 + self.x5 = 0 + self.x6 = 0 + setmetatable(self, Category_mt) + self.lastWasTitle = nil + if self.text or self.text2 or self.text3 or self.text4 or self.text5 or self.text6 then + local x = new( + 'category', category, + 'text', self.text, + 'textR', self.textR or 1, + 'textG', self.textG or 1, + 'textB', self.textB or 1, + 'fakeChild', true, + 'func', self.func, + 'arg1', info.arg1, + 'arg2', self.arg2, + 'arg3', self.arg3, + '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, + 'justify2', self.justify2, + 'justify3', self.justify3, + 'justify4', self.justify4, + 'justify5', self.justify5, + 'justify6', self.justify6 + ) + 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 + x.text2 = self.text2 + x.text3 = self.text3 + x.text4 = self.text4 + x.text5 = self.text5 + x.text6 = self.text6 + x.text2R = self.text2R or self.textR2 or 1 + x.text2G = self.text2G or self.textG2 or 1 + x.text2B = self.text2B or self.textB2 or 1 + x.text3R = self.text3R or self.textR3 or 1 + x.text3G = self.text3G or self.textG3 or 1 + x.text3B = self.text3B or self.textB3 or 1 + x.text4R = self.text4R or self.textR4 or 1 + x.text4G = self.text4G or self.textG4 or 1 + x.text4B = self.text4B or self.textB4 or 1 + x.text5R = self.text5R or self.textR5 or 1 + x.text5G = self.text5G or self.textG5 or 1 + x.text5B = self.text5B or self.textB5 or 1 + x.text6R = self.text6R or self.textR6 or 1 + x.text6G = self.text6G or self.textG6 or 1 + x.text6B = self.text6B or self.textB6 or 1 + x.font2 = self.font2 + x.font3 = self.font3 + x.font4 = self.font4 + x.font5 = self.font5 + x.font6 = self.font6 + x.size2 = self.size2 + x.size3 = self.size3 + x.size4 = self.size4 + x.size5 = self.size5 + x.size6 = self.size6 + 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(k1, v1, k2, v2, k3, v3, k4, v4, k5, v5, k6, v6, k7, v7, k8, v8, k9, v9, k10, v10, k11, v11, k12, v12, k13, v13, k14, v14, k15, v15, k16, v16, k17, v17, k18, v18, k19, v19, k20, v20, k21, v21, k22, v22, k23, v23, k24, v24, k25, v25, k26, v26, k27, v27, k28, v28, k29, v29, k30, v30) + self.lastWasTitle = nil + local line + if type(k1) == "table" then + Line:new(self, k1, v1) + else + local info = new(k1, v1, k2, v2, k3, v3, k4, v4, k5, v5, k6, v6, k7, v7, k8, v8, k9, v9, k10, v10, k11, v11, k12, v12, k13, v13, k14, v14, k15, v15, k16, v16, k17, v17, k18, v18, k19, v19, k20, v20, k21, v21, k22, v22, k23, v23, k24, v24, k25, v25, k26, v26, k27, v27, k28, v28, k29, v29, k30, v30) + Line:new(self, info) + del(info) + end + end + + function Category:AddCategory(k1, v1, k2, v2, k3, v3, k4, v4, k5, v5, k6, v6, k7, v7, k8, v8, k9, v9, k10, v10, k11, v11, k12, v12, k13, v13, k14, v14, k15, v15, k16, v16, k17, v17, k18, v18, k19, v19, k20, v20, k21, v21, k22, v22, k23, v23, k24, v24, k25, v25, k26, v26, k27, v27, k28, v28, k29, v29, k30, v30) + local lastWasTitle = self.lastWasTitle + self.lastWasTitle = nil + local info + if type(k1) == "table" then + info = k1 + else + info = new(k1, v1, k2, v2, k3, v3, k4, v4, k5, v5, k6, v6, k7, v7, k8, v8, k9, v9, k10, v10, k11, v11, k12, v12, k13, v13, k14, v14, k15, v15, k16, v16, k17, v17, k18, v18, k19, v19, k20, v20, k21, v21, k22, v22, k23, v23, k24, v24, k25, v25, k26, v26, k27, v27, k28, v28, k29, v29, k30, v30) + end + if lastWasTitle or table.getn(self.lines) == 0 then + info.hideBlankLine = true + end + local cat = Category:new(self.tabletData, info, self) + table.insert(self.lines, cat) + 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 table.getn(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 + table.insert(category.lines, self) + end + setmetatable(self, Line_mt) + 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 + elseif columns == 3 then + if not self.justify then + self.justify = "LEFT" + end + if not self.justify2 then + self.justify2 = "CENTER" + end + if not self.justify3 then + self.justify3 = "RIGHT" + end + if self.wrap then + self.wrap2 = false + self.wrap3 = false + elseif self.wrap2 then + self.wrap3 = false + end + elseif columns == 4 then + if not self.justify then + self.justify = "LEFT" + end + if not self.justify2 then + self.justify2 = "CENTER" + end + if not self.justify3 then + self.justify3 = "CENTER" + end + if not self.justify4 then + self.justify4 = "RIGHT" + end + if self.wrap then + self.wrap2 = false + self.wrap3 = false + self.wrap4 = false + elseif self.wrap2 then + self.wrap3 = false + self.wrap4 = false + elseif self.wrap3 then + self.wrap4 = false + end + elseif columns == 5 then + if not self.justify then + self.justify = "LEFT" + end + if not self.justify2 then + self.justify2 = "CENTER" + end + if not self.justify3 then + self.justify3 = "CENTER" + end + if not self.justify4 then + self.justify4 = "CENTER" + end + if not self.justify5 then + self.justify5 = "RIGHT" + end + if self.wrap then + self.wrap2 = false + self.wrap3 = false + self.wrap4 = false + self.wrap5 = false + elseif self.wrap2 then + self.wrap3 = false + self.wrap4 = false + self.wrap5 = false + elseif self.wrap3 then + self.wrap4 = false + self.wrap5 = false + elseif self.wrap4 then + self.wrap5 = false + end + elseif columns == 6 then + if not self.justify then + self.justify = "LEFT" + end + if not self.justify2 then + self.justify2 = "CENTER" + end + if not self.justify3 then + self.justify3 = "CENTER" + end + if not self.justify4 then + self.justify4 = "CENTER" + end + if not self.justify5 then + self.justify5 = "CENTER" + end + if not self.justify6 then + self.justify6 = "RIGHT" + end + if self.wrap then + self.wrap2 = false + self.wrap3 = false + self.wrap4 = false + self.wrap5 = false + self.wrap6 = false + elseif self.wrap2 then + self.wrap3 = false + self.wrap4 = false + self.wrap5 = false + self.wrap6 = false + elseif self.wrap3 then + self.wrap4 = false + self.wrap5 = false + self.wrap6 = false + elseif self.wrap4 then + self.wrap5 = false + self.wrap6 = false + elseif self.wrap5 then + self.wrap6 = false + end + end + if self.textR2 then + self.text2R, self.textR2 = self.text2R or self.textR2 + self.text2G, self.textG2 = self.text2G or self.textG2 + self.text2B, self.textB2 = self.text2B or self.textB2 + if self.textR3 then + self.text3R, self.textR3 = self.text3R or self.textR3 + self.text3G, self.textG3 = self.text3G or self.textG3 + self.text3B, self.textB3 = self.text3B or self.textB3 + if self.textR4 then + self.text4R, self.textR4 = self.text4R or self.textR4 + self.text4G, self.textG4 = self.text4G or self.textG4 + self.text4B, self.textB4 = self.text4B or self.textB4 + if self.textR5 then + self.text5R, self.textR5 = self.text5R or self.textR5 + self.text5G, self.textG5 = self.text5G or self.textG5 + self.text5B, self.textB5 = self.text5B or self.textB5 + if self.textR5 then + self.text6R, self.textR6 = self.text6R or self.textR6 + self.text6G, self.textG6 = self.text6G or self.textG6 + self.text6B, self.textB6 = self.text6B or self.textB6 + end + 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 + if not self.font2 then + self.font2 = self.font + end + if not self.font3 then + self.font3 = self.font + end + if not self.font4 then + self.font4 = self.font + end + if not self.font5 then + self.font5 = self.font + end + if not self.font6 then + self.font6 = self.font + end + if not self.size then + _,self.size = self.font:GetFont() + end + if not self.size2 then + _,self.size2 = self.font2:GetFont() + end + if not self.size3 then + _,self.size3 = self.font3:GetFont() + end + if not self.size4 then + _,self.size4 = self.font4:GetFont() + end + if not self.size5 then + _,self.size5 = self.font5:GetFont() + end + if not self.size6 then + _,self.size6 = self.font6:GetFont() + end + + local fontSizePercent = category.tabletData.tablet.fontSizePercent + local w = 0 + self.checkWidth = 0 + if self.text then + if not self.wrap then + testString:SetWidth(0) + testString:SetFontObject(self.font) + local font,_,flags = testString:GetFont() + testString:SetFont(font, self.size * fontSizePercent, flags) + testString:SetText(self.text) + local checkWidth = self.hasCheck and self.size * fontSizePercent or 0 + self.checkWidth = checkWidth + w = testString:GetWidth() + self.indentation * fontSizePercent + checkWidth + if category.superCategory.x1 < w then + category.superCategory.x1 = w + end + else + if columns == 1 then + testString:SetWidth(0) + testString:SetFontObject(self.font) + local font,_,flags = testString:GetFont() + testString:SetFont(font, self.size * fontSizePercent, flags) + testString:SetText(self.text) + local checkWidth = self.hasCheck and self.size * fontSizePercent or 0 + self.checkWidth = checkWidth + w = testString:GetWidth() + 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 + testString:SetWidth(0) + testString:SetFontObject(self.font2) + local font,_,flags = testString:GetFont() + testString:SetFont(font, self.size2 * fontSizePercent, flags) + testString:SetText(self.text2) + w = w + 40 * fontSizePercent + testString:GetWidth() + 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 + testString:SetWidth(0) + testString:SetFontObject(self.font2) + local font,_,flags = testString:GetFont() + testString:SetFont(font, self.size2 * fontSizePercent, flags) + testString:SetText(self.text2) + local w = testString:GetWidth() + 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 + if self.text3 then + if not self.wrap3 then + testString:SetWidth(0) + testString:SetFontObject(self.font3) + local font,_,flags = testString:GetFont() + testString:SetFont(font, self.size3 * fontSizePercent, flags) + testString:SetText(self.text3) + local w = testString:GetWidth() + if category.superCategory.x3 < w then + category.superCategory.x3 = w + end + else + local w = MIN_TOOLTIP_SIZE / 2 + if category.superCategory.x3 < w then + category.superCategory.x3 = w + end + end + end + if columns >= 4 then + if self.text4 then + if not self.wrap4 then + testString:SetWidth(0) + testString:SetFontObject(self.font4) + local font,_,flags = testString:GetFont() + testString:SetFont(font, self.size4 * fontSizePercent, flags) + testString:SetText(self.text4) + w = testString:GetWidth() + if category.superCategory.x4 < w then + category.superCategory.x4 = w + end + else + local w = MIN_TOOLTIP_SIZE / 2 + if category.superCategory.x4 < w then + category.superCategory.x4 = w + end + end + end + if columns >= 5 then + if self.text5 then + if not self.wrap5 then + testString:SetWidth(0) + testString:SetFontObject(self.font5) + local font,_,flags = testString:GetFont() + testString:SetFont(font, self.size5 * fontSizePercent, flags) + testString:SetText(self.text5) + w = testString:GetWidth() + if category.superCategory.x5 < w then + category.superCategory.x5 = w + end + else + local w = MIN_TOOLTIP_SIZE / 2 + if category.superCategory.x5 < w then + category.superCategory.x5 = w + end + end + end + if columns >= 6 then + if self.text6 then + if not self.wrap6 then + testString:SetWidth(0) + testString:SetFontObject(self.font6) + local font,_,flags = testString:GetFont() + testString:SetFont(font, self.size6 * fontSizePercent, flags) + testString:SetText(self.text6) + w = testString:GetWidth() + if category.superCategory.x6 < w then + category.superCategory.x6 = w + end + else + local w = MIN_TOOLTIP_SIZE / 2 + if category.superCategory.x6 < w then + category.superCategory.x6 = w + end + end + 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 function button_OnEnter() + if type(this.self:GetScript("OnEnter")) == "function" then + this.self:GetScript("OnEnter")() + end + this.highlight:Show() +end + +local function button_OnLeave() + if type(this.self:GetScript("OnLeave")) == "function" then + this.self:GetScript("OnLeave")() + end + this.highlight:Hide() +end + +local function NewLine(self) + if self.maxLines <= self.numLines then + self.maxLines = self.maxLines + 1 + local button = CreateFrame("Button", nil, self) + button.indentation = 0 + local check = button:CreateTexture(nil, "ARTWORK") + local left = button:CreateFontString(nil, "ARTWORK") + local right = button:CreateFontString(nil, "ARTWORK") + local third = button:CreateFontString(nil, "ARTWORK") + local fourth = button:CreateFontString(nil, "ARTWORK") + local fifth = button:CreateFontString(nil, "ARTWORK") + local sixth = button:CreateFontString(nil, "ARTWORK") + local highlight = button:CreateTexture(nil, "BACKGROUND") + highlight:SetTexture("Interface\\QuestFrame\\UI-QuestTitleHighlight") + button.highlight = highlight + highlight:SetBlendMode("ADD") + highlight:SetAllPoints(button) + highlight:Hide() + table.insert(self.buttons, button) + table.insert(self.checks, check) + table.insert(self.lefts, left) + table.insert(self.rights, right) + table.insert(self.thirds, third) + table.insert(self.fourths, fourth) + table.insert(self.fifths, fifth) + table.insert(self.sixths, sixth) + left:SetWidth(0) + if self.maxLines == 1 then + left:SetFontObject(GameTooltipHeaderText) + right:SetFontObject(GameTooltipHeaderText) + third:SetFontObject(GameTooltipHeaderText) + fourth:SetFontObject(GameTooltipHeaderText) + fifth:SetFontObject(GameTooltipHeaderText) + sixth:SetFontObject(GameTooltipHeaderText) + left:SetJustifyH("CENTER") + button:SetPoint("TOPLEFT", self, "TOPLEFT", 8, -10) + else + left:SetFontObject(GameTooltipText) + right:SetFontObject(GameTooltipText) + third:SetFontObject(GameTooltipText) + fourth:SetFontObject(GameTooltipText) + fifth:SetFontObject(GameTooltipText) + sixth: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, "RIGHT", -12, 0) + check.shown = false + check:SetPoint("TOPLEFT", button, "TOPLEFT") + left:SetPoint("TOPLEFT", check, "TOPLEFT") + right:SetPoint("TOPLEFT", left, "TOPRIGHT", 40 * self.fontSizePercent, 0) + third:SetPoint("TOPLEFT", right, "TOPRIGHT", 20 * self.fontSizePercent, 0) + fourth:SetPoint("TOPLEFT", third, "TOPRIGHT", 20 * self.fontSizePercent, 0) + fifth:SetPoint("TOPLEFT", fourth, "TOPRIGHT", 20 * self.fontSizePercent, 0) + sixth:SetPoint("TOPLEFT", fifth, "TOPRIGHT", 20 * self.fontSizePercent, 0) + right:SetJustifyH("RIGHT") + 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() + left:Hide() + right:Hide() + third:Hide() + fourth:Hide() + fifth:Hide() + sixth:Hide() + end +end +NewLine = wrap(NewLine, "NewLine") + +local function GetMaxLinesPerScreen(self) + if self == tooltip then + return floor(50 / self.fontSizePercent) + else + return floor(30 / self.fontSizePercent) + end +end +GetMaxLinesPerScreen = wrap(GetMaxLinesPerScreen, "GetMaxLinesPerScreen") + +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) + else + tooltip = CreateFrame("Frame", "Tablet20Frame", UIParent) + self.tooltip = tooltip + tooltip.data = data + tooltip.detachedData = detachedData + tooltip:EnableMouse(true) + tooltip:EnableMouseWheel(true) + tooltip:SetFrameStrata("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.checks = {} + tooltip.lefts = {} + tooltip.rights = {} + tooltip.thirds = {} + tooltip.fourths = {} + tooltip.fifths = {} + tooltip.sixths = {} + 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.scroll = 0 + + tooltip:SetScript("OnUpdate", function() + if not tooltip.updating and not tooltip.enteredFrame then + tooltip.scroll = 0 + tooltip:Hide() + tooltip.registration.tooltip = nil + tooltip.registration = nil + end + end) + + tooltip:SetScript("OnEnter", function() + if tooltip.clickable then + tooltip.enteredFrame = true + end + end) + + tooltip:SetScript("OnLeave", function() + if not tooltip.updating then + tooltip.enteredFrame = false + end + end) + + tooltip:SetScript("OnMouseWheel", function() + tooltip.updating = true + tooltip:Scroll(arg1 < 0) + tooltip.updating = false + end) + + NewLine(tooltip) + + tooltip.scrollUp = tooltip:CreateFontString(nil, "ARTWORK") + tooltip.scrollUp:SetPoint("TOPLEFT", tooltip.buttons[1], "BOTTOMLEFT", 0, -2) + tooltip.scrollUp:SetPoint("RIGHT", tooltip, "RIGHT", 0, -10) + tooltip.scrollUp:SetFontObject(GameTooltipText) + tooltip.scrollUp:Hide() + local font,_,flags = tooltip.scrollUp:GetFont() + tooltip.scrollUp:SetFont(font, normalSize * tooltip.fontSizePercent, flags) + tooltip.scrollUp:SetJustifyH("CENTER") + tooltip.scrollUp:SetTextColor(1, 0.823529, 0) + tooltip.scrollUp:SetText(" ") + + tooltip.scrollDown = tooltip:CreateFontString(nil, "ARTWORK") + tooltip.scrollDown:SetPoint("TOPLEFT", tooltip.buttons[1], "BOTTOMLEFT", 0, -2) + tooltip.scrollDown:SetPoint("RIGHT", tooltip, "RIGHT", 0, -10) + tooltip.scrollDown:SetFontObject(GameTooltipText) + tooltip.scrollDown:Hide() + local font,_,flags = tooltip.scrollUp:GetFont() + tooltip.scrollDown:SetFont(font, normalSize * tooltip.fontSizePercent, flags) + tooltip.scrollDown:SetJustifyH("CENTER") + tooltip.scrollDown:SetTextColor(1, 0.823529, 0) + tooltip.scrollDown:SetText(" ") + + 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 = self.checks[i] + 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 + + local maxWidth = tabletData and tabletData.width or self:GetWidth() - 20 + local hasWrap = false + local screenWidth = GetScreenWidth() + local scrollMax = self.numLines + if scrollMax > GetMaxLinesPerScreen(self) + self.scroll then + scrollMax = GetMaxLinesPerScreen(self) + self.scroll + end + local numColumns + + local height = 20 + if scrollMax ~= self.numLines then + self.scrollDown:SetWidth(maxWidth) + height = height + self.scrollDown:GetHeight() + 2 + end + if self.scroll ~= 0 then + self.scrollUp:SetWidth(maxWidth) + height = height + self.scrollUp:GetHeight() + 2 + end + self:SetWidth(maxWidth + 20) + + local tmp = self.scroll + 1 + if tmp ~= 1 then + tmp = tmp + 1 + end + for i = 1, self.numLines do + if i < tmp or i > scrollMax or (i == scrollMax and i ~= self.numLines) then + self.buttons[i]:ClearAllPoints() + self.buttons[i]:Hide() + else + local button = self.buttons[i] + local left = self.lefts[i] + local right = self.rights[i] + local check = self.checks[i] + button:SetWidth(maxWidth) + button:SetHeight(math.max(left:GetHeight(), right:GetHeight())) + height = height + button:GetHeight() + 2 + if i == self.scroll + 1 then + button:SetPoint("TOPLEFT", self, "TOPLEFT", 10, -10) + 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 + end + if self.scroll ~= 0 then + self.scrollUp:SetPoint("TOPLEFT", self, "TOPLEFT", 10, -10) + self.buttons[self.scroll + 2]:SetPoint("TOPLEFT", self.scrollUp, "BOTTOMLEFT", 0, -2) + self.scrollUp:SetText(SCROLL_UP .. " (" .. self.scroll + 2 .. " / " .. self.numLines .. ")") + self.scrollUp:Show() + else + self.scrollUp:Hide() + end + if scrollMax ~= self.numLines and self.buttons[scrollMax - 1] then + self.scrollDown:SetPoint("TOPLEFT", self.buttons[scrollMax - 1], "BOTTOMLEFT", 0, -2) + self.scrollDown:SetText(SCROLL_DOWN .. " (" .. scrollMax - 1 .. " / " .. self.numLines .. ")") + self.scrollDown:Show() + else + self.scrollDown:Hide() + end + self:SetHeight(height) + end + tooltip.Show = wrap(tooltip.Show, "tooltip:Show") + + local lastMouseDown + local function button_OnClick() + if this.self:HasScript("OnClick") and type(this.self:GetScript("OnClick")) == "function" then + this.self:GetScript("OnClick")() + end + if arg1 == "RightButton" then + if this.self:HasScript("OnClick") and type(this.self:GetScript("OnClick")) == "function" then + this.self:GetScript("OnClick")() + 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 + this.func(this.a1, this.a2, this.a3) + if this.self then + this.self.preventRefresh = false + this.self:children() + this.self.updating = false + end + end + end + end + local function button_OnMouseUp() + if this.self:HasScript("OnMouseUp") and type(this.self:GetScript("OnMouseUp")) == "function" then + this.self:GetScript("OnMouseUp")() + 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() + if this.self:HasScript("OnMouseDown") and type(this.self:GetScript("OnMouseDown")) == "function" then + this.self:GetScript("OnMouseDown")() + 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 + 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 x1, x2, x3, x4, x5, x6 + if category then + x1, x2, x3, x4, x5, x6 = category.x1, category.x2, category.x3, category.x4, category.x5, category.x6 + else + x1, x2, x3, x4, x5, x6 = 0, 0, 0, 0, 0, 0 + end + if info.isTitle then + justAddedTitle = true + end + + self.numLines = self.numLines + 1 + NewLine(self) + self.lefts[self.numLines]:Show() + self.buttons[self.numLines]:Show() + num = self.numLines + + local button = self.buttons[num] + button.indentation = info.indentation + local left = self.lefts[num] + local right = self.rights[num] + local third = self.thirds[num] + local fourth = self.fourths[num] + local fifth = self.fifths[num] + local sixth = self.sixths[num] + local check = self.checks[num] + do -- if columns >= 1 then + left:SetFontObject(info.font) + left:SetText(text) + left:Show() + if info.textR and info.textG and info.textB then + left:SetTextColor(info.textR, info.textG, info.textB) + else + left:SetTextColor(1, 0.823529, 0) + end + local a,_,b = left:GetFont() + left:SetFont(a, info.size * fontSizePercent, b) + left:SetJustifyH(info.justify) + if columns < 2 then + right:SetText(nil) + right:Hide() + right:SetPoint("TOPLEFT", left, "TOPRIGHT", 40 * fontSizePercent, 0) + right:SetPoint("TOPRIGHT", button, "TOPRIGHT", -5, 0) + third:SetText(nil) + third:Hide() + fourth:SetText(nil) + fourth:Hide() + fifth:SetText(nil) + fifth:Hide() + sixth:SetText(nil) + sixth:Hide() + else + right:SetFontObject(info.font2) + right:SetText(info.text2) + right:Show() + if info.text2R and info.text2G and info.text2B then + right:SetTextColor(info.text2R, info.text2G, info.text2B) + else + right:SetTextColor(1, 0.823529, 0) + end + local a,_,b = right:GetFont() + right:SetFont(a, info.size2 * fontSizePercent, b) + right:SetJustifyH(info.justify2) + if columns < 3 then + right:SetPoint("TOPLEFT", left, "TOPRIGHT", 40 * fontSizePercent, 0) + right:SetPoint("TOPRIGHT", button, "TOPRIGHT", -5, 0) + third:SetText(nil) + third:Hide() + fourth:SetText(nil) + fourth:Hide() + fifth:SetText(nil) + fifth:Hide() + sixth:SetText(nil) + sixth:Hide() + else + third:SetFontObject(info.font3) + third:SetText(info.text3) + third:Show() + if info.text3R and info.text3G and info.text3B then + third:SetTextColor(info.text3R, info.text3G, info.text3B) + else + third:SetTextColor(1, 0.823529, 0) + end + local a,_,b = third:GetFont() + third:SetFont(a, info.size3 * fontSizePercent, b) + right:ClearAllPoints() + right:SetPoint("TOPLEFT", left, "TOPRIGHT", 20 * fontSizePercent, 0) + third:SetJustifyH(info.justify3) + if columns < 4 then + fourth:SetText(nil) + fourth:Hide() + fifth:SetText(nil) + fifth:Hide() + sixth:SetText(nil) + sixth:Hide() + else + fourth:SetFontObject(info.font4) + fourth:SetText(info.text4) + fourth:Show() + if info.text4R and info.text4G and info.text4B then + fourth:SetTextColor(info.text4R, info.text4G, info.text4B) + else + fourth:SetTextColor(1, 0.823529, 0) + end + local a,_,b = fourth:GetFont() + fourth:SetFont(a, info.size4 * fontSizePercent, b) + fourth:SetJustifyH(info.justify4) + if columns < 5 then + fifth:SetText(nil) + fifth:Hide() + sixth:SetText(nil) + sixth:Hide() + else + fifth:SetFontObject(info.font5) + fifth:SetText(info.text5) + fifth:Show() + if info.text5R and info.text5G and info.text5B then + fifth:SetTextColor(info.text5R, info.text5G, info.text5B) + else + fifth:SetTextColor(1, 0.823529, 0) + end + local a,_,b = fourth:GetFont() + fifth:SetFont(a, info.size5 * fontSizePercent, b) + fifth:SetJustifyH(info.justify5) + if columns < 6 then + sixth:SetText(nil) + sixth:Hide() + else + sixth:SetFontObject(info.font6) + sixth:SetText(info.text6) + sixth:Show() + if info.text5R and info.text6G and info.text6B then + sixth:SetTextColor(info.text6R, info.text6G, info.text6B) + else + sixth:SetTextColor(1, 0.823529, 0) + end + local a,_,b = fourth:GetFont() + sixth:SetFont(a, info.size6 * fontSizePercent, b) + sixth:SetJustifyH(info.justify6) + end + end + end + end + end + end + + check:SetWidth(info.size) + check:SetHeight(info.size) + check.width = info.size + 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 + else + if info.checkIcon then + check:SetTexture(info.checkIcon) + if string.sub(info.checkIcon, 1, 16) == "Interface\\Icons\\" then + check:SetTexCoord(0.05, 0.95, 0.05, 0.95) + else + check:SetTexCoord(0, 1, 0, 1) + end + else + check:SetTexture("Interface\\Buttons\\UI-CheckBox-Check") + check:SetWidth(info.size * 1.5) + check:SetHeight(info.size * 1.5) + check.width = info.size * 1.2 + check:SetTexCoord(0, 1, 0, 1) + end + check:SetAlpha(info.checked and 1 or 0) + end + left:SetPoint("TOPLEFT", check, "TOPLEFT", check.width, 0) + else + left:SetPoint("TOPLEFT", check, "TOPLEFT") + end + if columns == 1 then + left:SetWidth(maxWidth) + elseif columns == 2 then + left:SetWidth(0) + right:SetWidth(0) + if info.wrap then + left:SetWidth(maxWidth - right:GetWidth() - 40 * fontSizePercent) + elseif info.wrap2 then + right:SetWidth(maxWidth - left:GetWidth() - 40 * fontSizePercent) + end + right:ClearAllPoints() + right:SetPoint("TOPRIGHT", button, "TOPRIGHT", 0, 0) + if not info.text2 then + left:SetJustifyH(info.justify or "LEFT") + end + elseif columns == 3 then + left:SetWidth(x1 - info.checkWidth) + right:SetWidth(x2) + third:SetWidth(x3) + right:ClearAllPoints() + local num = (category.tabletData.width - x1 - x2 - x3) / 2 + right:SetPoint("TOPLEFT", left, "TOPRIGHT", num, 0) + third:SetPoint("TOPLEFT", right, "TOPRIGHT", num, 0) + elseif columns == 4 then + left:SetWidth(x1 - info.checkWidth) + right:SetWidth(x2) + third:SetWidth(x3) + fourth:SetWidth(x4) + local num = (category.tabletData.width - x1 - x2 - x3 - x4) / 3 + right:SetPoint("TOPLEFT", left, "TOPRIGHT", num, 0) + third:SetPoint("TOPLEFT", right, "TOPRIGHT", num, 0) + fourth:SetPoint("TOPLEFT", third, "TOPRIGHT", num, 0) + elseif columns == 5 then + left:SetWidth(x1 - info.checkWidth) + right:SetWidth(x2) + third:SetWidth(x3) + fourth:SetWidth(x4) + fifth:SetWidth(x5) + local num = (category.tabletData.width - x1 - x2 - x3 - x4 - x5) / 4 + right:SetPoint("TOPLEFT", left, "TOPRIGHT", num, 0) + third:SetPoint("TOPLEFT", right, "TOPRIGHT", num, 0) + fourth:SetPoint("TOPLEFT", third, "TOPRIGHT", num, 0) + fifth:SetPoint("TOPLEFT", fourth, "TOPRIGHT", num, 0) + elseif columns == 6 then + left:SetWidth(x1 - info.checkWidth) + right:SetWidth(x2) + third:SetWidth(x3) + fourth:SetWidth(x4) + fifth:SetWidth(x5) + sixth:SetWidth(x6) + local num = (category.tabletData.width - x1 - x2 - x3 - x4 - x5 - x6) / 5 + right:SetPoint("TOPLEFT", left, "TOPRIGHT", num, 0) + third:SetPoint("TOPLEFT", right, "TOPRIGHT", num, 0) + fourth:SetPoint("TOPLEFT", third, "TOPRIGHT", num, 0) + fifth:SetPoint("TOPLEFT", fourth, "TOPRIGHT", num, 0) + sixth:SetPoint("TOPLEFT", fifth, "TOPRIGHT", num, 0) + end + if not self.locked or IsAltKeyDown() then + local func = info.func + if func then + if type(func) == "string" then + Tablet:assert(type(info.arg1) == "table", "Cannot call method " .. info.func .. " on a non-table") + func = info.arg1[func] + Tablet:assert(type(func) == "function", "Method " .. info.func .. " nonexistant") + end + Tablet:assert(type(func) == "function", "func must be a function or method") + button.func = func + button.a1 = info.arg1 + button.a2 = info.arg2 + button.a3 = info.arg3 + button.self = self + button:SetScript("OnMouseUp", button_OnMouseUp) + button:SetScript("OnMouseDown", button_OnMouseDown) + 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:SetScript("OnClick", nil) + button:EnableMouse(false) + end + else + button:SetScript("OnMouseDown", nil) + button:SetScript("OnMouseUp", 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 ~= 1 and percent or nil + end + self.scrollUp:SetFont(font, normalSize * self.fontSizePercent, flags) + self.scrollDown:SetFont(font, normalSize * self.fontSizePercent, flags) + local ratio = self.fontSizePercent / lastSize + for i = 1, self.numLines do + local left = self.lefts[i] + local right = self.rights[i] + local third = self.thirds[i] + local fourth = self.fourths[i] + local fifth = self.fifths[i] + local sixth = self.sixths[i] + local check = self.checks[i] + local font, size, flags = left:GetFont() + left:SetFont(font, size * ratio, flags) + font, size, flags = right:GetFont() + right:SetFont(font, size * ratio, flags) + font, size, flags = third:GetFont() + third:SetFont(font, size * ratio, flags) + font, size, flags = fourth:GetFont() + fourth:SetFont(font, size * ratio, flags) + font, size, flags = fifth:GetFont() + fifth:SetFont(font, size * ratio, flags) + font, size, flags = sixth:GetFont() + sixth:SetFont(font, size * ratio, flags) + 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: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) + 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) + if down then + if IsShiftKeyDown() then + self.scroll = self.numLines - GetMaxLinesPerScreen(self) + else + self.scroll = self.scroll + 3 + end + else + if IsShiftKeyDown() then + self.scroll = 0 + else + self.scroll = self.scroll - 3 + end + end + if self.scroll > self.numLines - GetMaxLinesPerScreen(self) then + self.scroll = self.numLines - GetMaxLinesPerScreen(self) + end + if self.scroll < 0 then + self.scroll = 0 + end + if self:IsShown() then + self:Show() + end + end + tooltip.Scroll = wrap(tooltip.Scroll, "tooltip:Scroll") + + function tooltip.Detach(tooltip) + local owner = tooltip.owner + tooltip:Hide() + self:assert(tooltip.detachedData, "You cannot detach if detachedData is not present") + tooltip.detachedData.detached = true + local detached = AcquireDetachedFrame(self, tooltip.registration, tooltip.data, tooltip.detachedData) + + detached.menu, tooltip.menu = tooltip.menu, nil + detached.children = tooltip.children + tooltip.children = 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 + end + end +end +ReleaseDetachedFrame = wrap(ReleaseDetachedFrame, "ReleaseDetachedFrame") + +local StartCheckingAlt, StopCheckingAlt +do + local frame + function StartCheckingAlt(func) + if not frame then + frame = CreateFrame("Frame") + end + local last = IsAltKeyDown() + frame:SetScript("OnUpdate", function() + local now = IsAltKeyDown() + if last ~= now then + last = now + func() + end + end) + end + function StopCheckingAlt() + if frame then + frame:SetScript("OnUpdate", nil) + 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:SetPoint(detachedData.anchor or "CENTER", UIParent, detachedData.anchor or "CENTER", detachedData.offsetx or 0, detachedData.offsety or 0) + detached.registration = registration + registration.tooltip = detached + 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")() + end + arg1 = a1 + end + end + end + end) + if not tooltip then + AcquireFrame(self, {}) + end + local detached = CreateFrame("Frame", "Tablet20DetachedFrame" .. (table.getn(detachedTooltips) + 1), UIParent) + table.insert(detachedTooltips, detached) + detached.notInUse = true + detached:EnableMouse(not data.locked) + detached:EnableMouseWheel(true) + detached:SetMovable(true) + detached:SetPoint(data.anchor or "CENTER", UIParent, 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.checks = {} + detached.lefts = {} + detached.rights = {} + detached.thirds = {} + detached.fourths = {} + detached.fifths = {} + detached.sixths = {} + detached.transparency = 0.75 + detached.r = 0 + detached.g = 0 + detached.b = 0 + detached:SetFrameStrata("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.scroll = 0 + detached:EnableMouse(not detached.locked) + + local width = GetScreenWidth() + local height = GetScreenHeight() + detached:SetScript("OnMouseDown", function() + if arg1 == "LeftButton" then + detached:StartMoving() + detached.moving = true + end + end) + + detached:SetScript("OnMouseUp", function() + if arg1 == "LeftButton" then + 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, UIParent, 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 + end) + + 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 + Dewdrop:AddLine( + 'text', LOCK, + 'tooltipTitle', LOCK, + 'tooltipText', LOCK_DESC, + 'checked', detached:IsLocked(), + 'arg1', detached, + 'func', "Lock", + 'closeWhenClicked', not detached:IsLocked() + ) + 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 + ) + + NewLine(detached) + + detached.scrollUp = detached:CreateFontString(nil, "ARTWORK") + detached.scrollUp:SetPoint("TOPLEFT", detached.buttons[1], "BOTTOMLEFT", 0, -2) + detached.scrollUp:SetPoint("RIGHT", detached, "RIGHT", 0, -10) + detached.scrollUp:SetFontObject(GameTooltipText) + detached.scrollUp:Hide() + local font,_,flags = detached.scrollUp:GetFont() + detached.scrollUp:SetFont(font, normalSize * detached.fontSizePercent, flags) + detached.scrollUp:SetJustifyH("CENTER") + detached.scrollUp:SetTextColor(1, 0.823529, 0) + detached.scrollUp:SetText(" ") + + detached.scrollDown = detached:CreateFontString(nil, "ARTWORK") + detached.scrollDown:SetPoint("TOPLEFT", detached.buttons[1], "BOTTOMLEFT", 0, -2) + detached.scrollDown:SetPoint("RIGHT", detached, "RIGHT", 0, -10) + detached.scrollDown:SetFontObject(GameTooltipText) + detached.scrollDown:Hide() + local font,_,flags = detached.scrollUp:GetFont() + detached.scrollDown:SetFont(font, normalSize * detached.fontSizePercent, flags) + detached.scrollDown:SetJustifyH("CENTER") + detached.scrollDown:SetTextColor(1, 0.823529, 0) + detached.scrollDown:SetText(" ") + + detached:SetScript("OnMouseWheel", function() + 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) + self:assert(detached, "Detached tooltip not given.") + self:assert(detached.AddLine, "detached argument not a Tooltip.") + self:assert(detached.owner, "Detached tooltip has no owner.") + self:assert(not detached.notInUse, "Detached tooltip not in use.") + 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 + end + return + else + self:argCheck(parent, 2, "table", "string") + end + local info = self.registry[parent] + self:assert(info, "You cannot close a tablet with an unregistered parent frame.") + 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() + tooltip.registration.tooltip = nil + tooltip.registration = nil + end +end +Tablet.Close = wrap(Tablet.Close, "Tablet:Close") + +local currentFrame +local currentTabletData + +function Tablet:Open(parent) + self:argCheck(parent, 2, "table", "string") + local info = self.registry[parent] + self:assert(info, "You cannot open a tablet with an unregistered parent frame.") + self:Close() + local data = info.data + local detachedData = info.detachedData + 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 + local children = info.children + function frame:children() + if not self.preventRefresh then + currentFrame = self + currentTabletData = TabletData:new(self) + self:ClearLines() + if children then + children() + end + currentTabletData:Display(currentFrame) + self:Show(currentTabletData) + currentTabletData:del() + currentTabletData = nil + currentFrame = nil + end + end + frame:SetOwner(parent) + frame:children() + local point = info.point + local relativePoint = info.point + 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 + if not point then + point = "CENTER" + end + if not relativePoint then + relativePoint = point + end + frame:ClearAllPoints() + if type(parent) ~= "string" then + frame:SetPoint(point, parent, 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(parent) ~= "string" then + frame:SetPoint(point, parent, relativePoint, -offsetx, -offsety) + end + + if detachedData and (info.cantAttach or detachedData.detached) and frame == tooltip then + detachedData.detached = false + frame:Detach() + end +end +Tablet.Open = wrap(Tablet.Open, "Tablet:Open") + +function Tablet:Register(parent, k1, v1, k2, v2, k3, v3, k4, v4, k5, v5, k6, v6, k7, v7, k8, v8, k9, v9, k10, v10, k11, v11, k12, v12, k13, v13, k14, v14, k15, v15, k16, v16, k17, v17, k18, v18, k19, v19, k20, v20, k21, v21, k22, v22, k23, v23, k24, v24, k25, v25, k26, v26, k27, v27, k28, v28, k29, v29, k30, v30) + self:argCheck(parent, 2, "table", "string") + if self.registry[parent] then + self:Unregister(parent) + end + local info + if type(k1) == "table" and k1[0] then + self:assert(type(self.registry[k1]) == "table", "Other parent not registered") + info = copy(self.registry[k1]) + if type(v1) == "function" then + info.point = v1 + info.relativePoint = nil + end + else + info = new(k1, v1, k2, v2, k3, v3, k4, v4, k5, v5, k6, v6, k7, v7, k8, v8, k9, v9, k10, v10, k11, v11, k12, v12, k13, v13, k14, v14, k15, v15, k16, v16, k17, v17, k18, v18, k19, v19, k20, v20, k21, v21, k22, v22, k23, v23, k24, v24, k25, v25, k26, v26, k27, v27, k28, v28, k29, v29, k30, v30) + 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 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 not Dewdrop:IsOpen(parent) then + self:Open(parent) + self.tooltip.enteredFrame = true + end + end + end) + local script = parent:GetScript("OnLeave") + parent:SetScript("OnLeave", function() + if script then + script() + end + if self.registry[parent] then + if self.tooltip and (not data or not detachedData or not detachedData.detached) then + self.tooltip.enteredFrame = false + 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") + self:assert(self.registry[parent], "You cannot unregister a parent frame if it has not been registered already.") + 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 currentCategoryInfo +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(k1, v1, k2, v2, k3, v3, k4, v4, k5, v5, k6, v6, k7, v7, k8, v8, k9, v9, k10, v10, k11, v11, k12, v12, k13, v13, k14, v14, k15, v15, k16, v16, k17, v17, k18, v18, k19, v19, k20, v20, k21, v21, k22, v22, k23, v23, k24, v24, k25, v25, k26, v26, k27, v27, k28, v28, k29, v29, k30, v30) + self:assert(currentFrame, "You must add categories in within a registration.") + local info = new(k1, v1, k2, v2, k3, v3, k4, v4, k5, v5, k6, v6, k7, v7, k8, v8, k9, v9, k10, v10, k11, v11, k12, v12, k13, v13, k14, v14, k15, v15, k16, v16, k17, v17, k18, v18, k19, v19, k20, v20, k21, v21, k22, v22, k23, v23, k24, v24, k25, v25, k26, v26, k27, v27, k28, v28, k29, v29, k30, v30) + local cat = currentTabletData:AddCategory(info) + del(info) + return cat +end +Tablet.AddCategory = wrap(Tablet.AddCategory, "Tablet:AddCategory") + +function Tablet:SetHint(text) + self:assert(currentFrame, "You must set hint within a registration.") + self:assert(not currentCategoryInfo, "You cannot set hint in a category.") + currentTabletData:SetHint(text) +end +Tablet.SetHint = wrap(Tablet.SetHint, "Tablet:SetHint") + +function Tablet:SetTitle(text) + self:assert(currentFrame, "You must set title within a registration") + self:assert(not currentCategoryInfo, "You cannot set title in a category.") + currentTabletData:SetTitle(text) +end +Tablet.SetTitle = wrap(Tablet.SetTitle, "Tablet:SetTitle") + +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:assert(false, "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:assert(false, "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 + local data = info.data + local detachedData = info.detachedData + if info.tooltip then + info.tooltip:SetTransparency(percent) + else + 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:assert(false, "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:assert(parent, "You must provide a parent frame to check transparency") + 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:assert(false, "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:assert(parent, "You must provide a 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] + self:assert(info, "You cannot detach tablet with an unregistered parent frame.") + self:assert(info.detachedData, "You cannot detach tablet without a data field.") + 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 + local children = info.children + function detached:children() + if not self.preventRefresh then + currentFrame = self + currentTabletData = TabletData:new(self) + self:ClearLines() + if children then + children() + end + currentTabletData:Display(currentFrame) + self:Show(currentTabletData) + currentTabletData:del() + currentTabletData = nil + currentFrame = nil + 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] + self:assert(info, "You cannot detach tablet with an unregistered parent frame.") + self:assert(info.detachedData, "You cannot attach tablet without a data field.") + 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] + self:assert(info, "You cannot check tablet with an unregistered parent frame.") + 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] + self:assert(info, "You cannot refresh tablet with an unregistered parent frame.") + 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] + self:assert(info, "You cannot detach tablet with an unregistered parent frame.") + 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] + self:assert(info, "You cannot detach tablet with an unregistered parent frame.") + 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] + self:assert(info, "You cannot detach tablet with an unregistered parent frame.") + 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() + self:assert(duration and times and memories) + local t = new() + for method in pairs(memories) do + table.insert(t, 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)) + table_setn(t, 0) + 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 + 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) diff --git a/Payload/Interface/Addons/nampowersettings/settings.lua b/Payload/Interface/Addons/nampowersettings/settings.lua index ca108c4..9a2c560 100644 --- a/Payload/Interface/Addons/nampowersettings/settings.lua +++ b/Payload/Interface/Addons/nampowersettings/settings.lua @@ -1,1296 +1,1296 @@ -local L = AceLibrary("AceLocale-2.2"):new("NampowerSettings") - --- No Nampower v2, no need for settings -if not GetNampowerVersion then - DEFAULT_CHAT_FRAME:AddMessage(L["|cffffcc00Nampower v2|cffffaaaa not present hiding settings."]) - return -end - -Nampower = AceLibrary("AceAddon-2.0"):new("AceEvent-2.0", "AceDebug-2.0", "AceModuleCore-2.0", "AceConsole-2.0", "AceDB-2.0", "AceHook-2.1") -Nampower:RegisterDB("NampowerSettingsDB") -Nampower:RegisterDefaults("profile", { - per_character_settings = false, - show_queued_spell = false, - queued_spell_posx = 0, - queued_spell_posy = 0, - queued_spell_size = 16, - queued_spell_enable_mouse = true, -}) -Nampower.frame = CreateFrame("Frame", "Nampower", UIParent) - -local DISPLAY_ONLY_SETTINGS = { - NP_EnableAuraCastEvents = true, - NP_EnableAutoAttackEvents = true, - NP_EnableSpellStartEvents = true, - NP_EnableSpellGoEvents = true, - NP_EnableSpellHealEvents = true, - NP_EnableSpellEnergizeEvents = true, - NP_EnableUnitEventsPet = true, - NP_EnableUnitEventsParty = true, - NP_EnableUnitEventsRaid = true, - NP_EnableUnitEventsMouseover = true, - NP_EnableUnitEventsGuid = true, -} - -local function isProfileManagedSetting(settingKey) - return string.find(settingKey, "NP_") == 1 and not DISPLAY_ONLY_SETTINGS[settingKey] -end - -local function clearDisplayOnlyProfileSettings() - for settingKey in pairs(DISPLAY_ONLY_SETTINGS) do - Nampower.db.profile[settingKey] = nil - end -end - -function Nampower:HasMinimumVersion(major, minor, patch) - if GetNampowerVersion then - local installedMajor, installedMinor, installedPatch = GetNampowerVersion() - - if installedMajor > major then - return true - elseif installedMajor == major and installedMinor > minor then - return true - elseif installedMajor == major and installedMinor == minor and installedPatch >= patch then - return true - end - end - - return false -end - --- check if they have the latest nampower dll -if not Nampower:HasMinimumVersion(2, 20, 0) then - DEFAULT_CHAT_FRAME:AddMessage(L["update available"]) -end - --- setup queued spell frame -Nampower.queued_spell = CreateFrame("Frame", "Queued Spell", UIParent) -Nampower.queued_spell:SetFrameStrata("HIGH") -Nampower.queued_spell.texture = Nampower.queued_spell:CreateTexture(nil, "OVERLAY") -Nampower.queued_spell.texture:SetAllPoints() -Nampower.queued_spell.texture:SetTexCoord(.08, .92, .08, .92) -Nampower.queued_spell.texture:SetTexture("Interface\\Icons\\Spell_Nature_HealingWaveLesser") -- set test texture - --- setup dragging -Nampower.queued_spell:RegisterForDrag("LeftButton") -Nampower.queued_spell:SetMovable(true) - -Nampower.queued_spell:SetScript("OnDragStart", function() - this:StartMoving() -end) - -local function saveQueuedSpellPosition() - Nampower.db.profile.queued_spell_posx = Nampower.queued_spell:GetLeft() - Nampower.db.profile.queued_spell_posy = Nampower.queued_spell:GetTop() -end - -Nampower.queued_spell:SetScript("OnDragStop", function() - this:StopMovingOrSizing() - saveQueuedSpellPosition() -end) - -local ON_SWING_QUEUED = 0 -local ON_SWING_QUEUE_POPPED = 1 -local NORMAL_QUEUED = 2 -local NORMAL_QUEUE_POPPED = 3 -local NON_GCD_QUEUED = 4 -local NON_GCD_QUEUE_POPPED = 5 - -local function spellQueueEventNampower(eventCode, spellId) - if eventCode == NORMAL_QUEUED or eventCode == NON_GCD_QUEUED then - local texture = GetSpellIconTexture(GetSpellRecField(spellId, "spellIconID")) - if texture then - Nampower.queued_spell.texture:SetTexture(texture) - Nampower.queued_spell:Show() - end - elseif eventCode == NORMAL_QUEUE_POPPED or eventCode == NON_GCD_QUEUE_POPPED then - Nampower.queued_spell:Hide() - end -end - -local function spellQueueEventSuperwow(eventCode, spellId) - if eventCode == NORMAL_QUEUED or eventCode == NON_GCD_QUEUED then - local _, _, texture = SpellInfo(spellId) -- superwow function - Nampower.queued_spell.texture:SetTexture(texture) - Nampower.queued_spell:Show() - elseif eventCode == NORMAL_QUEUE_POPPED or eventCode == NON_GCD_QUEUE_POPPED then - Nampower.queued_spell:Hide() - end -end - -local function toggleEventListener() - if Nampower.db.profile.show_queued_spell then - if GetSpellRecField and GetSpellIconTexture then - Nampower:RegisterEvent("SPELL_QUEUE_EVENT", spellQueueEventNampower) - elseif SpellInfo then - Nampower:RegisterEvent("SPELL_QUEUE_EVENT", spellQueueEventSuperwow) - else - DEFAULT_CHAT_FRAME:AddMessage(L["Superwow required to display queued spells."]) - if Nampower:IsEventRegistered("SPELL_QUEUE_EVENT") then - Nampower:UnregisterEvent("SPELL_QUEUE_EVENT") - end - end - else - if Nampower:IsEventRegistered("SPELL_QUEUE_EVENT") then - Nampower:UnregisterEvent("SPELL_QUEUE_EVENT") - end - end -end - --- used when turning on per character settings -function Nampower:SavePerCharacterSettings() - for settingKey, settingData in pairs(Nampower.cmdtable.args) do - if isProfileManagedSetting(settingKey) then - settingData.set(settingData.get()) -- trigger the set function for each setting with the current value - end - end - - for settingKey, settingData in pairs(Nampower.cmdtable.args.queue_windows.args) do - if isProfileManagedSetting(settingKey) then - settingData.set(settingData.get()) -- trigger the set function for each setting with the current value - end - end - - for settingKey, settingData in pairs(Nampower.cmdtable.args.advanced_options.args) do - if isProfileManagedSetting(settingKey) then - settingData.set(settingData.get()) -- trigger the set function for each setting with the current value - end - end - - if Nampower.cmdtable.args.advanced_options.args.unit_events then - for settingKey, settingData in pairs(Nampower.cmdtable.args.advanced_options.args.unit_events.args) do - if isProfileManagedSetting(settingKey) then - settingData.set(settingData.get()) -- trigger the set function for each setting with the current value - end - end - end - - for settingKey, settingData in pairs(Nampower.cmdtable.args.qol_options.args) do - if isProfileManagedSetting(settingKey) then - settingData.set(settingData.get()) -- trigger the set function for each setting with the current value - end - end - - if Nampower.cmdtable.args.chat_bubbles then - for settingKey, settingData in pairs(Nampower.cmdtable.args.chat_bubbles.args) do - if settingData.get and settingData.set then - settingData.set(settingData.get()) - end - end - end -end - -function Nampower:ApplySavedSettings() - for settingKey, settingData in pairs(Nampower.cmdtable.args) do - -- only apply settings that are prefixed with NP_ - if isProfileManagedSetting(settingKey) then - if Nampower.db.profile[settingKey]~= nil then - settingData.set(Nampower.db.profile[settingKey]) - end - end - end - - for settingKey, settingData in pairs(Nampower.cmdtable.args.queue_windows.args) do - -- only apply settings that are prefixed with NP_ - if isProfileManagedSetting(settingKey) then - if Nampower.db.profile[settingKey]~= nil then - settingData.set(Nampower.db.profile[settingKey]) - end - end - end - - for settingKey, settingData in pairs(Nampower.cmdtable.args.advanced_options.args) do - -- only apply settings that are prefixed with NP_ - if isProfileManagedSetting(settingKey) then - if Nampower.db.profile[settingKey]~= nil then - settingData.set(Nampower.db.profile[settingKey]) - end - end - end - - if Nampower.cmdtable.args.advanced_options.args.unit_events then - for settingKey, settingData in pairs(Nampower.cmdtable.args.advanced_options.args.unit_events.args) do - -- only apply settings that are prefixed with NP_ - if isProfileManagedSetting(settingKey) then - if Nampower.db.profile[settingKey]~= nil then - settingData.set(Nampower.db.profile[settingKey]) - end - end - end - end - - for settingKey, settingData in pairs(Nampower.cmdtable.args.qol_options.args) do - -- only apply settings that are prefixed with NP_ - if isProfileManagedSetting(settingKey) then - if Nampower.db.profile[settingKey]~= nil then - settingData.set(Nampower.db.profile[settingKey]) - end - end - end - - if Nampower.cmdtable.args.chat_bubbles then - for settingKey, settingData in pairs(Nampower.cmdtable.args.chat_bubbles.args) do - if Nampower.db.profile[settingKey]~= nil and settingData.set then - settingData.set(Nampower.db.profile[settingKey]) - end - end - end -end - -function Nampower:OnEnable() - clearDisplayOnlyProfileSettings() - - Nampower.queued_spell:EnableMouse(Nampower.db.profile.queued_spell_enable_mouse) - - -- set scale - local x = Nampower.db.profile.queued_spell_posx - local y = Nampower.db.profile.queued_spell_posy - local size = Nampower.db.profile.queued_spell_size - - -- set saved position - Nampower.queued_spell:ClearAllPoints() - Nampower.queued_spell:SetPoint("TOPLEFT", UIParent, "BOTTOMLEFT", x, y) - Nampower.queued_spell:SetWidth(size) - Nampower.queued_spell:SetHeight(size) - Nampower.queued_spell:Hide() - - -- if per character settings are enabled, apply them - if Nampower.db.profile.per_character_settings then - Nampower:ApplySavedSettings() - end - - toggleEventListener() -end - -Nampower.cmdtable = { - type = "group", - handler = Nampower, - args = { - per_character_settings = { - type = "toggle", - name = L["Enable Per Character Settings"], - desc = L["Whether to use per character settings for all of the NP_ settings. This will cause settings saved in your character's NampowerSettings.lua to override any global settings in Config.wtf."], - order = 1, - get = function() - return Nampower.db.profile.per_character_settings - end, - set = function(v) - if v ~= Nampower.db.profile.per_character_settings then - Nampower.db.profile.per_character_settings = v - if v == true then - Nampower:SavePerCharacterSettings() - end - end - end, - }, - NP_QueueCastTimeSpells = { - type = "toggle", - name = L["Queue Cast Time Spells"], - desc = L["Whether to enable spell queuing for spells with a cast time"], - order = 5, - get = function() - return GetCVar("NP_QueueCastTimeSpells") == "1" - end, - set = function(v) - Nampower.db.profile.NP_QueueCastTimeSpells = v - if v == true then - SetCVar("NP_QueueCastTimeSpells", "1") - else - SetCVar("NP_QueueCastTimeSpells", "0") - end - end, - }, - NP_QueueInstantSpells = { - type = "toggle", - name = L["Queue Instant Spells"], - desc = L["Whether to enable spell queuing for instant cast spells tied to gcd"], - order = 10, - get = function() - return GetCVar("NP_QueueInstantSpells") == "1" - end, - set = function(v) - Nampower.db.profile.NP_QueueInstantSpells = v - if v == true then - SetCVar("NP_QueueInstantSpells", "1") - else - SetCVar("NP_QueueInstantSpells", "0") - end - end, - }, - NP_QueueOnSwingSpells = { - type = "toggle", - name = L["Queue On Swing Spells"], - desc = L["Whether to enable on swing spell queuing"], - order = 15, - get = function() - return GetCVar("NP_QueueOnSwingSpells") == "1" - end, - set = function(v) - Nampower.db.profile.NP_QueueOnSwingSpells = v - if v == true then - SetCVar("NP_QueueOnSwingSpells", "1") - else - SetCVar("NP_QueueOnSwingSpells", "0") - end - end, - }, - NP_QueueChannelingSpells = { - type = "toggle", - name = L["Queue Channeling Spells"], - desc = L["Whether to enable channeling spell queuing"], - order = 20, - get = function() - return GetCVar("NP_QueueChannelingSpells") == "1" - end, - set = function(v) - Nampower.db.profile.NP_QueueChannelingSpells = v - if v == true then - SetCVar("NP_QueueChannelingSpells", "1") - else - SetCVar("NP_QueueChannelingSpells", "0") - end - end, - }, - NP_QueueTargetingSpells = { - type = "toggle", - name = L["Queue Targeting Spells"], - desc = L["Whether to enable terrain targeting spell queuing"], - order = 25, - get = function() - return GetCVar("NP_QueueTargetingSpells") == "1" - end, - set = function(v) - Nampower.db.profile.NP_QueueTargetingSpells = v - if v == true then - SetCVar("NP_QueueTargetingSpells", "1") - else - SetCVar("NP_QueueTargetingSpells", "0") - end - end, - }, - NP_QueueSpellsOnCooldown = { - type = "toggle", - name = L["Queue Spells Coming Off Cooldown"], - desc = L["Whether to enable spell queuing for spells coming off cooldown"], - order = 30, - get = function() - return GetCVar("NP_QueueSpellsOnCooldown") == "1" - end, - set = function(v) - Nampower.db.profile.NP_QueueSpellsOnCooldown = v - if v == true then - SetCVar("NP_QueueSpellsOnCooldown", "1") - else - SetCVar("NP_QueueSpellsOnCooldown", "0") - end - end, - }, - spacera = { - type = "header", - name = " ", - order = 31, - }, - queue_windows = { - type = "group", - name = L["Queue Windows"], - desc = L["How much time in ms you have before a cast ends to queue different types of spells"], - order = 40, - args = { - NP_SpellQueueWindowMs = { - type = "range", - name = L["Spell Queue Window (ms)"], - desc = L["The window in ms before a cast finishes where the next will get queued"], - order = 40, - min = 0, - max = 5000, - step = 50, - get = function() - return GetCVar("NP_SpellQueueWindowMs") - end, - set = function(v) - Nampower.db.profile.NP_SpellQueueWindowMs = v - SetCVar("NP_SpellQueueWindowMs", v) - end, - }, - NP_OnSwingBufferCooldownMs = { - type = "range", - name = L["On Swing Buffer Cooldown (ms)"], - desc = L["The cooldown time in ms after an on swing spell before you can queue on swing spells"], - order = 45, - min = 0, - max = 5000, - step = 50, - get = function() - return GetCVar("NP_OnSwingBufferCooldownMs") - end, - set = function(v) - Nampower.db.profile.NP_OnSwingBufferCooldownMs = v - SetCVar("NP_OnSwingBufferCooldownMs", v) - end, - }, - NP_ChannelQueueWindowMs = { - type = "range", - name = L["Channel Queue Window (ms)"], - desc = L["The window in ms before a channel finishes where the next will get queued"], - order = 50, - min = 0, - max = 5000, - step = 50, - get = function() - return GetCVar("NP_ChannelQueueWindowMs") - end, - set = function(v) - Nampower.db.profile.NP_ChannelQueueWindowMs = v - SetCVar("NP_ChannelQueueWindowMs", v) - end, - }, - NP_TargetingQueueWindowMs = { - type = "range", - name = L["Targeting Queue Window (ms)"], - desc = L["The window in ms before a terrain targeting spell finishes where the next will get queued"], - order = 55, - min = 0, - max = 5000, - step = 50, - get = function() - return GetCVar("NP_TargetingQueueWindowMs") - end, - set = function(v) - Nampower.db.profile.NP_TargetingQueueWindowMs = v - SetCVar("NP_TargetingQueueWindowMs", v) - end, - }, - NP_CooldownQueueWindowMs = { - type = "range", - name = L["Cooldown Queue Window (ms)"], - desc = L["The window in ms before a spell coming off cooldown finishes where the next will get queued"], - order = 60, - min = 0, - max = 5000, - step = 50, - get = function() - return GetCVar("NP_CooldownQueueWindowMs") - end, - set = function(v) - Nampower.db.profile.NP_CooldownQueueWindowMs = v - SetCVar("NP_CooldownQueueWindowMs", v) - end, - } - }, - }, - spacerb = { - type = "header", - name = " ", - order = 50, - }, - cast_options = { - type = "group", - name = L["Cast Options"], - desc = L["Options for controlling casting behavior"], - order = 55, - args = { - NP_QuickcastTargetingSpells = { - type = "toggle", - name = L["Quickcast Targeting Spells"], - desc = L["Whether to enable quick casting for ALL spells with terrain targeting"], - order = 5, - get = function() - return GetCVar("NP_QuickcastTargetingSpells") == "1" - end, - set = function(v) - Nampower.db.profile.NP_QuickcastTargetingSpells = v - if v == true then - SetCVar("NP_QuickcastTargetingSpells", "1") - else - SetCVar("NP_QuickcastTargetingSpells", "0") - end - end, - }, - NP_DoubleCastToEndChannelEarly = { - type = "toggle", - name = L["Double Cast to End Channel Early"], - desc = L["Whether to allow double casting a spell within 350ms to end channeling on the next tick. Takes into account your ChannelLatencyReductionPercentage."], - order = 15, - get = function() - return GetCVar("NP_DoubleCastToEndChannelEarly") == "1" - end, - set = function(v) - Nampower.db.profile.NP_DoubleCastToEndChannelEarly = v - if v == true then - SetCVar("NP_DoubleCastToEndChannelEarly", "1") - else - SetCVar("NP_DoubleCastToEndChannelEarly", "0") - end - end, - }, - }, - }, - spacerc2 = { - type = "header", - name = " ", - order = 58, - }, - qol_options = { - type = "group", - name = L["QOL Options"], - desc = L["Quality of life options to prevent common issues"], - order = 59, - args = { - }, - }, - chat_bubbles = { - type = "group", - name = L["Chat Bubbles"], - desc = L["Chat bubble options"], - order = 120, - args = { - }, - }, - spacerc3 = { - type = "header", - name = " ", - order = 60, - }, - advanced_options = { - type = "group", - name = L["Advanced options"], - desc = L["Collection of various advanced options"], - order = 65, - args = { - NP_InterruptChannelsOutsideQueueWindow = { - type = "toggle", - name = L["Interrupt Channels Outside Queue Window"], - desc = L["Whether to allow interrupting channels (the original client behavior) when trying to cast a spell outside the channeling queue window"], - order = 70, - get = function() - return GetCVar("NP_InterruptChannelsOutsideQueueWindow") == "1" - end, - set = function(v) - Nampower.db.profile.NP_InterruptChannelsOutsideQueueWindow = v - if v == true then - SetCVar("NP_InterruptChannelsOutsideQueueWindow", "1") - else - SetCVar("NP_InterruptChannelsOutsideQueueWindow", "0") - end - end, - }, - NP_RetryServerRejectedSpells = { - type = "toggle", - name = L["Retry Server Rejected Spells"], - desc = L["Whether to retry spells that are rejected by the server for these reasons: SPELL_FAILED_ITEM_NOT_READY, SPELL_FAILED_NOT_READY, SPELL_FAILED_SPELL_IN_PROGRESS"], - order = 100, - get = function() - return GetCVar("NP_RetryServerRejectedSpells") == "1" - end, - set = function(v) - Nampower.db.profile.NP_RetryServerRejectedSpells = v - if v == true then - SetCVar("NP_RetryServerRejectedSpells", "1") - else - SetCVar("NP_RetryServerRejectedSpells", "0") - end - end, - }, - NP_ReplaceMatchingNonGcdCategory = { - type = "toggle", - name = L["Replace Matching Non GCD Category"], - desc = L["Whether to replace any queued non gcd spell when a new non gcd spell with the same non zero StartRecoveryCategory is cast. Most trinkets and spells are category 0 which are ignored by this setting. The primary use case is to switch which potion you have queued."], - order = 110, - get = function() - return GetCVar("NP_ReplaceMatchingNonGcdCategory") == "1" - end, - set = function(v) - Nampower.db.profile.NP_ReplaceMatchingNonGcdCategory = v - if v == true then - SetCVar("NP_ReplaceMatchingNonGcdCategory", "1") - else - SetCVar("NP_ReplaceMatchingNonGcdCategory", "0") - end - end, - }, - NP_OptimizeBufferUsingPacketTimings = { - type = "toggle", - name = L["Optimize Buffer Using Packet Timings"], - desc = L["Whether to attempt to optimize your buffer using your latency and server packet timings"], - order = 115, - get = function() - return GetCVar("NP_OptimizeBufferUsingPacketTimings") == "1" - end, - set = function(v) - Nampower.db.profile.NP_OptimizeBufferUsingPacketTimings = v - if v == true then - SetCVar("NP_OptimizeBufferUsingPacketTimings", "1") - else - SetCVar("NP_OptimizeBufferUsingPacketTimings", "0") - end - end, - }, - NP_MinBufferTimeMs = { - type = "range", - name = L["Minimum Buffer Time (ms)"], - desc = L["The minimum buffer delay in ms added to each cast"], - order = 80, - min = 0, - max = 300, - step = 1, - get = function() - return GetCVar("NP_MinBufferTimeMs") - end, - set = function(v) - Nampower.db.profile.NP_MinBufferTimeMs = v - SetCVar("NP_MinBufferTimeMs", v) - end, - }, - NP_NonGcdBufferTimeMs = { - type = "range", - name = L["Non GCD Buffer Time (ms)"], - desc = L["The buffer delay in ms added AFTER each cast that is not tied to the gcd"], - order = 85, - min = 0, - max = 300, - step = 1, - get = function() - return GetCVar("NP_NonGcdBufferTimeMs") - end, - set = function(v) - Nampower.db.profile.NP_NonGcdBufferTimeMs = v - SetCVar("NP_NonGcdBufferTimeMs", v) - end, - }, - NP_MaxBufferIncreaseMs = { - type = "range", - name = L["Max Buffer Increase (ms)"], - desc = L["The maximum amount of time in ms to increase the buffer by when the server rejects a cast"], - order = 90, - min = 0, - max = 100, - step = 5, - get = function() - return GetCVar("NP_MaxBufferIncreaseMs") - end, - set = function(v) - Nampower.db.profile.NP_MaxBufferIncreaseMs = v - SetCVar("NP_MaxBufferIncreaseMs", v) - end, - }, - NP_ChannelLatencyReductionPercentage = { - type = "range", - name = L["Channel Latency Reduction (%)"], - desc = L["The percentage of your latency to subtract from the end of a channel duration to optimize cast time while hopefully not losing any ticks"], - order = 125, - min = 0, - max = 100, - step = 1, - get = function() - return GetCVar("NP_ChannelLatencyReductionPercentage") - end, - set = function(v) - Nampower.db.profile.NP_ChannelLatencyReductionPercentage = v - SetCVar("NP_ChannelLatencyReductionPercentage", v) - end, - }, - spell_events = { - type = "group", - name = L["Spell Events"], - desc = L["Controls optional spell and combat event CVars."], - order = 150, - args = { - }, - }, - }, - }, - spacerc = { - type = "header", - name = " ", - order = 75, - }, - queued_spell_options = { - type = "group", - name = L["Queued Spell Display Options"], - desc = L["Options for displaying an icon for the queued spell"], - order = 85, - args = { - enabled = { - type = "toggle", - name = L["Display queued spell icon"], - desc = L["Whether to display an icon of the queued spell"], - order = 5, - get = function() - return Nampower.db.profile.show_queued_spell - end, - set = function(v) - Nampower.db.profile.show_queued_spell = v - toggleEventListener() - end, - }, - size = { - type = "range", - name = L["Icon size"], - desc = L["Change the spell icon size"], - order = 10, - min = 8, - max = 48, - step = 1, - get = function() - return Nampower.db.profile.queued_spell_size - end, - set = function(v) - Nampower.db.profile.queued_spell_size = v - Nampower.queued_spell:SetWidth(v) - Nampower.queued_spell:SetHeight(v) - end, - }, - draggable = { - type = "toggle", - name = L["Allow dragging"], - desc = L["Whether to allow interaction with the queued spell icon so you can move it around"], - order = 15, - get = function() - return Nampower.db.profile.queued_spell_enable_mouse - end, - set = function(v) - Nampower.db.profile.queued_spell_enable_mouse = v - Nampower.queued_spell:EnableMouse(v) - end, - }, - reset_position = { - type = "execute", - name = L["Reset Position"], - desc = L["Reset the position of the queued spell icon"], - order = 20, - func = function() - local scale = Nampower.queued_spell:GetEffectiveScale() - Nampower.queued_spell:ClearAllPoints() - Nampower.queued_spell:SetPoint("TOPLEFT", UIParent, "BOTTOMLEFT", 500 / scale, 500 / scale) - saveQueuedSpellPosition() - end, - }, - test = { - type = "execute", - name = L["Show/Hide for positioning"], - desc = L["Test the queued spell icon and position it to your liking"], - order = 25, - func = function() - if Nampower.queued_spell:IsVisible() then - Nampower.queued_spell:Hide() - else - Nampower.queued_spell:Show() - end - end, - }, - }, - }, - spacerd = { - type = "header", - name = " ", - order = 95, - }, - }, -} - -if Nampower:HasMinimumVersion(2, 8, 6) then - Nampower.cmdtable.args.NP_NameplateDistance = { - type = "range", - name = L["Nameplate Distance"], - desc = L["The distance in yards to show nameplates"], - order = 115, - min = 5, - max = 200, - step = 1, - get = function() - return GetCVar("NP_NameplateDistance") - end, - set = function(v) - Nampower.db.profile.NP_NameplateDistance = v - SetCVar("NP_NameplateDistance", v) - end, - } -end - -Nampower.cmdtable.args.qol_options.args.NP_PreventRightClickTargetChange = { - type = "toggle", - name = L["Prevent Right Click Target Change"], - desc = L["Whether to prevent right-clicking from changing your current target when in combat. If you don't have a target right click will still change your target even with this on. This is mainly to prevent accidentally changing targets in combat when trying to adjust your camera."], - order = 5, - get = function() - return GetCVar("NP_PreventRightClickTargetChange") == "1" - end, - set = function(v) - Nampower.db.profile.NP_PreventRightClickTargetChange = v - if v == true then - SetCVar("NP_PreventRightClickTargetChange", "1") - else - SetCVar("NP_PreventRightClickTargetChange", "0") - end - end, -} - -if Nampower:HasMinimumVersion(2, 11, 0) then - Nampower.cmdtable.args.qol_options.args.NP_SpamProtectionEnabled = { - type = "toggle", - name = L["Spam Protection"], - desc = L["Whether to enable spam protection functionality that blocks spamming spells while waiting for the server to respond to your initial cast due to issues spamming can cause"], - order = 10, - get = function() - return GetCVar("NP_SpamProtectionEnabled") == "1" - end, - set = function(v) - Nampower.db.profile.NP_SpamProtectionEnabled = v - if v == true then - SetCVar("NP_SpamProtectionEnabled", "1") - else - SetCVar("NP_SpamProtectionEnabled", "0") - end - end, - } - - Nampower.cmdtable.args.qol_options.args.NP_PreventRightClickPvPAttack = { - type = "toggle", - name = L["Prevent Right Click PvP Attack"], - desc = L["Whether to prevent right-clicking on PvP flagged players to avoid accidental PvP attacks"], - order = 15, - get = function() - return GetCVar("NP_PreventRightClickPvPAttack") == "1" - end, - set = function(v) - Nampower.db.profile.NP_PreventRightClickPvPAttack = v - if v == true then - SetCVar("NP_PreventRightClickPvPAttack", "1") - else - SetCVar("NP_PreventRightClickPvPAttack", "0") - end - end, - } -else - DEFAULT_CHAT_FRAME:AddMessage(L["update available"]) -end - -if Nampower:HasMinimumVersion(2, 15, 0) then - Nampower.cmdtable.args.cast_options.args.NP_QuickcastOnDoubleCast = { - type = "toggle", - name = L["Quickcast Targeting Spells on Double Cast"], - desc = L["Allows casting targeting spells by attempting to cast them twice as opposed to the default client behavior which cancels the targeting indicator"], - order = 10, - get = function() - return GetCVar("NP_QuickcastOnDoubleCast") == "1" - end, - set = function(v) - Nampower.db.profile.NP_QuickcastOnDoubleCast = v - if v == true then - SetCVar("NP_QuickcastOnDoubleCast", "1") - else - SetCVar("NP_QuickcastOnDoubleCast", "0") - end - end, - } -end - -if Nampower:HasMinimumVersion(2, 20, 0) then - Nampower.cmdtable.args.qol_options.args.NP_PreventMountingWhenBuffCapped = { - type = "toggle", - name = L["Prevent Mounting When Buff Capped"], - desc = L["Whether to prevent mounting when you have 32 buffs (buff capped) and are not already mounted. This prevents the issue where you mount but cannot dismount because the mount aura fails to apply due to the buff cap. When blocked, displays an error message."], - order = 20, - get = function() - return GetCVar("NP_PreventMountingWhenBuffCapped") == "1" - end, - set = function(v) - Nampower.db.profile.NP_PreventMountingWhenBuffCapped = v - if v == true then - SetCVar("NP_PreventMountingWhenBuffCapped", "1") - else - SetCVar("NP_PreventMountingWhenBuffCapped", "0") - end - end, - } - - Nampower.cmdtable.args.advanced_options.args.spell_events.args.NP_EnableAuraCastEvents = { - type = "toggle", - name = L["Enable Aura Cast Events"], - desc = L["Whether to enable AURA_CAST_ON_SELF and AURA_CAST_ON_OTHER events."], - order = 155, - get = function() - return GetCVar("NP_EnableAuraCastEvents") == "1" - end, - set = function(v) - if v == true then - SetCVar("NP_EnableAuraCastEvents", "1") - else - SetCVar("NP_EnableAuraCastEvents", "0") - end - end, - } -end - -if Nampower:HasMinimumVersion(2, 24, 0) then - Nampower.cmdtable.args.advanced_options.args.spell_events.args.NP_EnableAutoAttackEvents = { - type = "toggle", - name = L["Enable Auto Attack Events"], - desc = L["Whether to enable AUTO_ATTACK_SELF and AUTO_ATTACK_OTHER events."], - order = 160, - get = function() - return GetCVar("NP_EnableAutoAttackEvents") == "1" - end, - set = function(v) - if v == true then - SetCVar("NP_EnableAutoAttackEvents", "1") - else - SetCVar("NP_EnableAutoAttackEvents", "0") - end - end, - } -end - -if Nampower:HasMinimumVersion(2, 25, 0) then - Nampower.cmdtable.args.advanced_options.args.spell_events.args.NP_EnableSpellStartEvents = { - type = "toggle", - name = L["Enable Spell Start Events"], - desc = L["Whether to enable SPELL_START_SELF and SPELL_START_OTHER events."], - order = 165, - get = function() - return GetCVar("NP_EnableSpellStartEvents") == "1" - end, - set = function(v) - if v == true then - SetCVar("NP_EnableSpellStartEvents", "1") - else - SetCVar("NP_EnableSpellStartEvents", "0") - end - end, - } - - Nampower.cmdtable.args.advanced_options.args.spell_events.args.NP_EnableSpellGoEvents = { - type = "toggle", - name = L["Enable Spell Go Events"], - desc = L["Whether to enable SPELL_GO_SELF and SPELL_GO_OTHER events."], - order = 170, - get = function() - return GetCVar("NP_EnableSpellGoEvents") == "1" - end, - set = function(v) - if v == true then - SetCVar("NP_EnableSpellGoEvents", "1") - else - SetCVar("NP_EnableSpellGoEvents", "0") - end - end, - } -end - -if Nampower:HasMinimumVersion(2, 26, 0) then - Nampower.cmdtable.args.advanced_options.args.spell_events.args.NP_EnableSpellHealEvents = { - type = "toggle", - name = L["Enable Spell Heal Events"], - desc = L["Whether to enable SPELL_HEAL_BY_SELF, SPELL_HEAL_BY_OTHER, and SPELL_HEAL_ON_SELF events."], - order = 175, - get = function() - return GetCVar("NP_EnableSpellHealEvents") == "1" - end, - set = function(v) - if v == true then - SetCVar("NP_EnableSpellHealEvents", "1") - else - SetCVar("NP_EnableSpellHealEvents", "0") - end - end, - } - - Nampower.cmdtable.args.advanced_options.args.spell_events.args.NP_EnableSpellEnergizeEvents = { - type = "toggle", - name = L["Enable Spell Energize Events"], - desc = L["Whether to enable SPELL_ENERGIZE_BY_SELF, SPELL_ENERGIZE_BY_OTHER, and SPELL_ENERGIZE_ON_SELF events."], - order = 180, - get = function() - return GetCVar("NP_EnableSpellEnergizeEvents") == "1" - end, - set = function(v) - if v == true then - SetCVar("NP_EnableSpellEnergizeEvents", "1") - else - SetCVar("NP_EnableSpellEnergizeEvents", "0") - end - end, - } -end - -if Nampower:HasMinimumVersion(2, 39, 0) then - Nampower.cmdtable.args.advanced_options.args.unit_events = { - type = "group", - name = L["Unit Event Filters"], - desc = L["Controls which unit identifiers trigger unit events (UNIT_HEALTH, UNIT_COMBAT, etc.). In the base game the same event can fire multiple times for the same unit, once per identifying string (e.g. 'party1', 'raid1', 'mouseover'). Disabling unused identifiers reduces redundant event calls. Note: 'player', 'target', and 'pet' (your own pet) always trigger regardless of these settings, as they are critical."], - order = 200, - args = { - NP_EnableUnitEventsPet = { - type = "toggle", - name = L["Enable Pet Unit Events"], - desc = L["Whether to fire unit events (UNIT_HEALTH, UNIT_COMBAT, etc.) for party and raid pet identifiers ('party1pet', 'raid1pet', etc.). Party pets additionally require Enable Party Unit Events to be on; raid pets additionally require Enable Raid Unit Events to be on. Your own pet ('pet') always fires events regardless of this setting."], - order = 5, - get = function() - return GetCVar("NP_EnableUnitEventsPet") == "1" - end, - set = function(v) - if v == true then - SetCVar("NP_EnableUnitEventsPet", "1") - else - SetCVar("NP_EnableUnitEventsPet", "0") - end - end, - }, - NP_EnableUnitEventsParty = { - type = "toggle", - name = L["Enable Party Unit Events"], - desc = L["Whether to fire unit events (UNIT_HEALTH, UNIT_COMBAT, etc.) for party member identifiers ('party1', 'party2', 'party3', 'party4'). Also required alongside Enable Pet Unit Events for party pet identifiers to fire."], - order = 10, - get = function() - return GetCVar("NP_EnableUnitEventsParty") == "1" - end, - set = function(v) - if v == true then - SetCVar("NP_EnableUnitEventsParty", "1") - else - SetCVar("NP_EnableUnitEventsParty", "0") - end - end, - }, - NP_EnableUnitEventsRaid = { - type = "toggle", - name = L["Enable Raid Unit Events"], - desc = L["Whether to fire unit events (UNIT_HEALTH, UNIT_COMBAT, etc.) for raid member identifiers ('raid1' through 'raid40'). Also required alongside Enable Pet Unit Events for raid pet identifiers to fire."], - order = 15, - get = function() - return GetCVar("NP_EnableUnitEventsRaid") == "1" - end, - set = function(v) - if v == true then - SetCVar("NP_EnableUnitEventsRaid", "1") - else - SetCVar("NP_EnableUnitEventsRaid", "0") - end - end, - }, - NP_EnableUnitEventsMouseover = { - type = "toggle", - name = L["Enable Mouseover Unit Events"], - desc = L["Whether to fire unit events (UNIT_HEALTH, UNIT_COMBAT, etc.) for the 'mouseover' unit identifier."], - order = 25, - get = function() - return GetCVar("NP_EnableUnitEventsMouseover") == "1" - end, - set = function(v) - if v == true then - SetCVar("NP_EnableUnitEventsMouseover", "1") - else - SetCVar("NP_EnableUnitEventsMouseover", "0") - end - end, - }, - NP_EnableUnitEventsGuid = { - type = "toggle", - name = L["Enable GUID Unit Events"], - desc = L["Whether to fire unit events (UNIT_HEALTH, UNIT_MANA, UNIT_AURA, etc.) using the raw GUID as the unit token, mirroring SuperWoW behavior. Fires for every unit the client tracks — not just named tokens like 'player', 'party1', 'raid1' — which can cause significant event spam in raids, BGs, and crowded zones. Older addons (e.g. pfUI) written for standard named tokens may have performance issues receiving GUID-based events. Addons needing GUID tracking (e.g. Automarker, Cursive) should use the new dedicated UNIT_HEALTH_GUID, UNIT_MANA_GUID, etc. events instead, allowing this to be safely disabled."], - order = 30, - get = function() - return GetCVar("NP_EnableUnitEventsGuid") == "1" - end, - set = function(v) - if v == true then - SetCVar("NP_EnableUnitEventsGuid", "1") - else - SetCVar("NP_EnableUnitEventsGuid", "0") - end - end, - }, - NP_EnableUnitEventsGuidFiltering = { - type = "toggle", - name = L["Enable GUID Unit Event Filtering"], - desc = L["When enabled, suppresses high-frequency GUID events that cause spam in older addons — specifically UNIT_AURA, UNIT_HEALTH, UNIT_MANA, and similar events below UNIT_COMBAT, plus UNIT_NAME_UPDATE, UNIT_PORTRAIT_UPDATE, UNIT_INVENTORY_CHANGED, and PLAYER_GUILD_UPDATE. UNIT_COMBAT_GUID and other less frequent GUID events are still fired. Has no effect if Enable GUID Unit Events is disabled. This is a direct replacement for the 'Filter GUID Events' option in PerfBoost."], - order = 35, - get = function() - return GetCVar("NP_EnableUnitEventsGuidFiltering") == "1" - end, - set = function(v) - Nampower.db.profile.NP_EnableUnitEventsGuidFiltering = v - if v == true then - SetCVar("NP_EnableUnitEventsGuidFiltering", "1") - else - SetCVar("NP_EnableUnitEventsGuidFiltering", "0") - end - end, - }, - }, - } -end - -if Nampower:HasMinimumVersion(3, 1, 0) then - Nampower.cmdtable.args.qol_options.args.NP_PreserveGreaterDemonAutocast = { - type = "toggle", - name = L["Preserve Greater Demon Autocast"], - desc = L["Whether to remember and restore Felguard/Doomguard autocast preferences when swapping or resummoning those greater demons."], - order = 25, - get = function() - return GetCVar("NP_PreserveGreaterDemonAutocast") == "1" - end, - set = function(v) - Nampower.db.profile.NP_PreserveGreaterDemonAutocast = v - if v == true then - SetCVar("NP_PreserveGreaterDemonAutocast", "1") - else - SetCVar("NP_PreserveGreaterDemonAutocast", "0") - end - end, - } - -end - -if Nampower:HasMinimumVersion(4, 3, 0) then - Nampower.cmdtable.args.qol_options.args.NP_EnableEnhancedTooltips = { - type = "toggle", - name = L["Enable Enhanced Tooltips"], - desc = L["Whether to enable nampower's tooltip additions such as spell proc chance, ICD, and item cooldown text."], - order = 30, - get = function() - return GetCVar("NP_EnableEnhancedTooltips") == "1" - end, - set = function(v) - Nampower.db.profile.NP_EnableEnhancedTooltips = v - if v == true then - SetCVar("NP_EnableEnhancedTooltips", "1") - else - SetCVar("NP_EnableEnhancedTooltips", "0") - end - end, - } -end - -if Nampower:HasMinimumVersion(3, 3, 0) then - Nampower.cmdtable.args.chat_bubbles.args.ChatBubbles = { - type = "toggle", - name = L["Chat Bubbles (Say/Yell)"], - desc = L["Whether to enable chat bubbles for /say and /yell messages."], - order = 5, - get = function() - return GetCVar("ChatBubbles") == "1" - end, - set = function(v) - Nampower.db.profile.ChatBubbles = v - if v == true then - SetCVar("ChatBubbles", "1") - else - SetCVar("ChatBubbles", "0") - end - end, - } - - Nampower.cmdtable.args.chat_bubbles.args.ChatBubblesParty = { - type = "toggle", - name = L["Chat Bubbles (Party)"], - desc = L["Whether to enable chat bubbles for /party messages."], - order = 10, - get = function() - return GetCVar("ChatBubblesParty") == "1" - end, - set = function(v) - Nampower.db.profile.ChatBubblesParty = v - if v == true then - SetCVar("ChatBubblesParty", "1") - else - SetCVar("ChatBubblesParty", "0") - end - end, - } - - Nampower.cmdtable.args.chat_bubbles.args.NP_ChatBubblesWhisper = { - type = "toggle", - name = L["Chat Bubbles (Whisper)"], - desc = L["Whether to enable chat bubbles for /whisper messages."], - order = 15, - get = function() - return GetCVar("NP_ChatBubblesWhisper") == "1" - end, - set = function(v) - Nampower.db.profile.NP_ChatBubblesWhisper = v - if v == true then - SetCVar("NP_ChatBubblesWhisper", "1") - else - SetCVar("NP_ChatBubblesWhisper", "0") - end - end, - } - - Nampower.cmdtable.args.chat_bubbles.args.NP_ChatBubblesRaid = { - type = "toggle", - name = L["Chat Bubbles (Raid)"], - desc = L["Whether to enable chat bubbles for /raid messages."], - order = 20, - get = function() - return GetCVar("NP_ChatBubblesRaid") == "1" - end, - set = function(v) - Nampower.db.profile.NP_ChatBubblesRaid = v - if v == true then - SetCVar("NP_ChatBubblesRaid", "1") - else - SetCVar("NP_ChatBubblesRaid", "0") - end - end, - } - - Nampower.cmdtable.args.chat_bubbles.args.NP_ChatBubblesBattleground = { - type = "toggle", - name = L["Chat Bubbles (Battleground)"], - desc = L["Whether to enable chat bubbles for battleground messages."], - order = 25, - get = function() - return GetCVar("NP_ChatBubblesBattleground") == "1" - end, - set = function(v) - Nampower.db.profile.NP_ChatBubblesBattleground = v - if v == true then - SetCVar("NP_ChatBubblesBattleground", "1") - else - SetCVar("NP_ChatBubblesBattleground", "0") - end - end, - } - - Nampower.cmdtable.args.chat_bubbles.args.NP_ChatBubbleDistance = { - type = "range", - name = L["Chat Bubble Distance"], - desc = L["The distance in yards to show chat bubbles"], - order = 30, - min = 5, - max = 100, - step = 1, - get = function() - local value = tonumber(GetCVar("NP_ChatBubbleDistance")) or 0 - return math.floor(value + 0.5) - end, - set = function(v) - Nampower.db.profile.NP_ChatBubbleDistance = v - SetCVar("NP_ChatBubbleDistance", v) - end, - } -else - Nampower.cmdtable.args.chat_bubbles = nil -end - -local deuce = Nampower:NewModule("Nampower Options Menu") -deuce.hasFuBar = IsAddOnLoaded("FuBar") and FuBar -deuce.consoleCmd = not deuce.hasFuBar - -NampowerOptions = AceLibrary("AceAddon-2.0"):new("AceDB-2.0", "FuBarPlugin-2.0") -NampowerOptions.name = "FuBar - Nampower" -NampowerOptions.hasIcon = "Interface\\Icons\\inv_misc_book_04" -NampowerOptions.defaultMinimapPosition = 180 -NampowerOptions.independentProfile = true -NampowerOptions.hideWithoutStandby = false - -NampowerOptions:RegisterDB("NampowerSettingsDB") - -NampowerOptions.OnMenuRequest = Nampower.cmdtable -local args = AceLibrary("FuBarPlugin-2.0"):GetAceOptionsDataTable(NampowerOptions) -for k, v in pairs(args) do - if NampowerOptions.OnMenuRequest.args[k] == nil then - NampowerOptions.OnMenuRequest.args[k] = v - end -end +local L = AceLibrary("AceLocale-2.2"):new("NampowerSettings") + +-- No Nampower v2, no need for settings +if not GetNampowerVersion then + DEFAULT_CHAT_FRAME:AddMessage(L["|cffffcc00Nampower v2|cffffaaaa not present hiding settings."]) + return +end + +Nampower = AceLibrary("AceAddon-2.0"):new("AceEvent-2.0", "AceDebug-2.0", "AceModuleCore-2.0", "AceConsole-2.0", "AceDB-2.0", "AceHook-2.1") +Nampower:RegisterDB("NampowerSettingsDB") +Nampower:RegisterDefaults("profile", { + per_character_settings = false, + show_queued_spell = false, + queued_spell_posx = 0, + queued_spell_posy = 0, + queued_spell_size = 16, + queued_spell_enable_mouse = true, +}) +Nampower.frame = CreateFrame("Frame", "Nampower", UIParent) + +local DISPLAY_ONLY_SETTINGS = { + NP_EnableAuraCastEvents = true, + NP_EnableAutoAttackEvents = true, + NP_EnableSpellStartEvents = true, + NP_EnableSpellGoEvents = true, + NP_EnableSpellHealEvents = true, + NP_EnableSpellEnergizeEvents = true, + NP_EnableUnitEventsPet = true, + NP_EnableUnitEventsParty = true, + NP_EnableUnitEventsRaid = true, + NP_EnableUnitEventsMouseover = true, + NP_EnableUnitEventsGuid = true, +} + +local function isProfileManagedSetting(settingKey) + return string.find(settingKey, "NP_") == 1 and not DISPLAY_ONLY_SETTINGS[settingKey] +end + +local function clearDisplayOnlyProfileSettings() + for settingKey in pairs(DISPLAY_ONLY_SETTINGS) do + Nampower.db.profile[settingKey] = nil + end +end + +function Nampower:HasMinimumVersion(major, minor, patch) + if GetNampowerVersion then + local installedMajor, installedMinor, installedPatch = GetNampowerVersion() + + if installedMajor > major then + return true + elseif installedMajor == major and installedMinor > minor then + return true + elseif installedMajor == major and installedMinor == minor and installedPatch >= patch then + return true + end + end + + return false +end + +-- check if they have the latest nampower dll +if not Nampower:HasMinimumVersion(2, 20, 0) then + DEFAULT_CHAT_FRAME:AddMessage(L["update available"]) +end + +-- setup queued spell frame +Nampower.queued_spell = CreateFrame("Frame", "Queued Spell", UIParent) +Nampower.queued_spell:SetFrameStrata("HIGH") +Nampower.queued_spell.texture = Nampower.queued_spell:CreateTexture(nil, "OVERLAY") +Nampower.queued_spell.texture:SetAllPoints() +Nampower.queued_spell.texture:SetTexCoord(.08, .92, .08, .92) +Nampower.queued_spell.texture:SetTexture("Interface\\Icons\\Spell_Nature_HealingWaveLesser") -- set test texture + +-- setup dragging +Nampower.queued_spell:RegisterForDrag("LeftButton") +Nampower.queued_spell:SetMovable(true) + +Nampower.queued_spell:SetScript("OnDragStart", function() + this:StartMoving() +end) + +local function saveQueuedSpellPosition() + Nampower.db.profile.queued_spell_posx = Nampower.queued_spell:GetLeft() + Nampower.db.profile.queued_spell_posy = Nampower.queued_spell:GetTop() +end + +Nampower.queued_spell:SetScript("OnDragStop", function() + this:StopMovingOrSizing() + saveQueuedSpellPosition() +end) + +local ON_SWING_QUEUED = 0 +local ON_SWING_QUEUE_POPPED = 1 +local NORMAL_QUEUED = 2 +local NORMAL_QUEUE_POPPED = 3 +local NON_GCD_QUEUED = 4 +local NON_GCD_QUEUE_POPPED = 5 + +local function spellQueueEventNampower(eventCode, spellId) + if eventCode == NORMAL_QUEUED or eventCode == NON_GCD_QUEUED then + local texture = GetSpellIconTexture(GetSpellRecField(spellId, "spellIconID")) + if texture then + Nampower.queued_spell.texture:SetTexture(texture) + Nampower.queued_spell:Show() + end + elseif eventCode == NORMAL_QUEUE_POPPED or eventCode == NON_GCD_QUEUE_POPPED then + Nampower.queued_spell:Hide() + end +end + +local function spellQueueEventSuperwow(eventCode, spellId) + if eventCode == NORMAL_QUEUED or eventCode == NON_GCD_QUEUED then + local _, _, texture = SpellInfo(spellId) -- superwow function + Nampower.queued_spell.texture:SetTexture(texture) + Nampower.queued_spell:Show() + elseif eventCode == NORMAL_QUEUE_POPPED or eventCode == NON_GCD_QUEUE_POPPED then + Nampower.queued_spell:Hide() + end +end + +local function toggleEventListener() + if Nampower.db.profile.show_queued_spell then + if GetSpellRecField and GetSpellIconTexture then + Nampower:RegisterEvent("SPELL_QUEUE_EVENT", spellQueueEventNampower) + elseif SpellInfo then + Nampower:RegisterEvent("SPELL_QUEUE_EVENT", spellQueueEventSuperwow) + else + DEFAULT_CHAT_FRAME:AddMessage(L["Superwow required to display queued spells."]) + if Nampower:IsEventRegistered("SPELL_QUEUE_EVENT") then + Nampower:UnregisterEvent("SPELL_QUEUE_EVENT") + end + end + else + if Nampower:IsEventRegistered("SPELL_QUEUE_EVENT") then + Nampower:UnregisterEvent("SPELL_QUEUE_EVENT") + end + end +end + +-- used when turning on per character settings +function Nampower:SavePerCharacterSettings() + for settingKey, settingData in pairs(Nampower.cmdtable.args) do + if isProfileManagedSetting(settingKey) then + settingData.set(settingData.get()) -- trigger the set function for each setting with the current value + end + end + + for settingKey, settingData in pairs(Nampower.cmdtable.args.queue_windows.args) do + if isProfileManagedSetting(settingKey) then + settingData.set(settingData.get()) -- trigger the set function for each setting with the current value + end + end + + for settingKey, settingData in pairs(Nampower.cmdtable.args.advanced_options.args) do + if isProfileManagedSetting(settingKey) then + settingData.set(settingData.get()) -- trigger the set function for each setting with the current value + end + end + + if Nampower.cmdtable.args.advanced_options.args.unit_events then + for settingKey, settingData in pairs(Nampower.cmdtable.args.advanced_options.args.unit_events.args) do + if isProfileManagedSetting(settingKey) then + settingData.set(settingData.get()) -- trigger the set function for each setting with the current value + end + end + end + + for settingKey, settingData in pairs(Nampower.cmdtable.args.qol_options.args) do + if isProfileManagedSetting(settingKey) then + settingData.set(settingData.get()) -- trigger the set function for each setting with the current value + end + end + + if Nampower.cmdtable.args.chat_bubbles then + for settingKey, settingData in pairs(Nampower.cmdtable.args.chat_bubbles.args) do + if settingData.get and settingData.set then + settingData.set(settingData.get()) + end + end + end +end + +function Nampower:ApplySavedSettings() + for settingKey, settingData in pairs(Nampower.cmdtable.args) do + -- only apply settings that are prefixed with NP_ + if isProfileManagedSetting(settingKey) then + if Nampower.db.profile[settingKey]~= nil then + settingData.set(Nampower.db.profile[settingKey]) + end + end + end + + for settingKey, settingData in pairs(Nampower.cmdtable.args.queue_windows.args) do + -- only apply settings that are prefixed with NP_ + if isProfileManagedSetting(settingKey) then + if Nampower.db.profile[settingKey]~= nil then + settingData.set(Nampower.db.profile[settingKey]) + end + end + end + + for settingKey, settingData in pairs(Nampower.cmdtable.args.advanced_options.args) do + -- only apply settings that are prefixed with NP_ + if isProfileManagedSetting(settingKey) then + if Nampower.db.profile[settingKey]~= nil then + settingData.set(Nampower.db.profile[settingKey]) + end + end + end + + if Nampower.cmdtable.args.advanced_options.args.unit_events then + for settingKey, settingData in pairs(Nampower.cmdtable.args.advanced_options.args.unit_events.args) do + -- only apply settings that are prefixed with NP_ + if isProfileManagedSetting(settingKey) then + if Nampower.db.profile[settingKey]~= nil then + settingData.set(Nampower.db.profile[settingKey]) + end + end + end + end + + for settingKey, settingData in pairs(Nampower.cmdtable.args.qol_options.args) do + -- only apply settings that are prefixed with NP_ + if isProfileManagedSetting(settingKey) then + if Nampower.db.profile[settingKey]~= nil then + settingData.set(Nampower.db.profile[settingKey]) + end + end + end + + if Nampower.cmdtable.args.chat_bubbles then + for settingKey, settingData in pairs(Nampower.cmdtable.args.chat_bubbles.args) do + if Nampower.db.profile[settingKey]~= nil and settingData.set then + settingData.set(Nampower.db.profile[settingKey]) + end + end + end +end + +function Nampower:OnEnable() + clearDisplayOnlyProfileSettings() + + Nampower.queued_spell:EnableMouse(Nampower.db.profile.queued_spell_enable_mouse) + + -- set scale + local x = Nampower.db.profile.queued_spell_posx + local y = Nampower.db.profile.queued_spell_posy + local size = Nampower.db.profile.queued_spell_size + + -- set saved position + Nampower.queued_spell:ClearAllPoints() + Nampower.queued_spell:SetPoint("TOPLEFT", UIParent, "BOTTOMLEFT", x, y) + Nampower.queued_spell:SetWidth(size) + Nampower.queued_spell:SetHeight(size) + Nampower.queued_spell:Hide() + + -- if per character settings are enabled, apply them + if Nampower.db.profile.per_character_settings then + Nampower:ApplySavedSettings() + end + + toggleEventListener() +end + +Nampower.cmdtable = { + type = "group", + handler = Nampower, + args = { + per_character_settings = { + type = "toggle", + name = L["Enable Per Character Settings"], + desc = L["Whether to use per character settings for all of the NP_ settings. This will cause settings saved in your character's NampowerSettings.lua to override any global settings in Config.wtf."], + order = 1, + get = function() + return Nampower.db.profile.per_character_settings + end, + set = function(v) + if v ~= Nampower.db.profile.per_character_settings then + Nampower.db.profile.per_character_settings = v + if v == true then + Nampower:SavePerCharacterSettings() + end + end + end, + }, + NP_QueueCastTimeSpells = { + type = "toggle", + name = L["Queue Cast Time Spells"], + desc = L["Whether to enable spell queuing for spells with a cast time"], + order = 5, + get = function() + return GetCVar("NP_QueueCastTimeSpells") == "1" + end, + set = function(v) + Nampower.db.profile.NP_QueueCastTimeSpells = v + if v == true then + SetCVar("NP_QueueCastTimeSpells", "1") + else + SetCVar("NP_QueueCastTimeSpells", "0") + end + end, + }, + NP_QueueInstantSpells = { + type = "toggle", + name = L["Queue Instant Spells"], + desc = L["Whether to enable spell queuing for instant cast spells tied to gcd"], + order = 10, + get = function() + return GetCVar("NP_QueueInstantSpells") == "1" + end, + set = function(v) + Nampower.db.profile.NP_QueueInstantSpells = v + if v == true then + SetCVar("NP_QueueInstantSpells", "1") + else + SetCVar("NP_QueueInstantSpells", "0") + end + end, + }, + NP_QueueOnSwingSpells = { + type = "toggle", + name = L["Queue On Swing Spells"], + desc = L["Whether to enable on swing spell queuing"], + order = 15, + get = function() + return GetCVar("NP_QueueOnSwingSpells") == "1" + end, + set = function(v) + Nampower.db.profile.NP_QueueOnSwingSpells = v + if v == true then + SetCVar("NP_QueueOnSwingSpells", "1") + else + SetCVar("NP_QueueOnSwingSpells", "0") + end + end, + }, + NP_QueueChannelingSpells = { + type = "toggle", + name = L["Queue Channeling Spells"], + desc = L["Whether to enable channeling spell queuing"], + order = 20, + get = function() + return GetCVar("NP_QueueChannelingSpells") == "1" + end, + set = function(v) + Nampower.db.profile.NP_QueueChannelingSpells = v + if v == true then + SetCVar("NP_QueueChannelingSpells", "1") + else + SetCVar("NP_QueueChannelingSpells", "0") + end + end, + }, + NP_QueueTargetingSpells = { + type = "toggle", + name = L["Queue Targeting Spells"], + desc = L["Whether to enable terrain targeting spell queuing"], + order = 25, + get = function() + return GetCVar("NP_QueueTargetingSpells") == "1" + end, + set = function(v) + Nampower.db.profile.NP_QueueTargetingSpells = v + if v == true then + SetCVar("NP_QueueTargetingSpells", "1") + else + SetCVar("NP_QueueTargetingSpells", "0") + end + end, + }, + NP_QueueSpellsOnCooldown = { + type = "toggle", + name = L["Queue Spells Coming Off Cooldown"], + desc = L["Whether to enable spell queuing for spells coming off cooldown"], + order = 30, + get = function() + return GetCVar("NP_QueueSpellsOnCooldown") == "1" + end, + set = function(v) + Nampower.db.profile.NP_QueueSpellsOnCooldown = v + if v == true then + SetCVar("NP_QueueSpellsOnCooldown", "1") + else + SetCVar("NP_QueueSpellsOnCooldown", "0") + end + end, + }, + spacera = { + type = "header", + name = " ", + order = 31, + }, + queue_windows = { + type = "group", + name = L["Queue Windows"], + desc = L["How much time in ms you have before a cast ends to queue different types of spells"], + order = 40, + args = { + NP_SpellQueueWindowMs = { + type = "range", + name = L["Spell Queue Window (ms)"], + desc = L["The window in ms before a cast finishes where the next will get queued"], + order = 40, + min = 0, + max = 5000, + step = 50, + get = function() + return GetCVar("NP_SpellQueueWindowMs") + end, + set = function(v) + Nampower.db.profile.NP_SpellQueueWindowMs = v + SetCVar("NP_SpellQueueWindowMs", v) + end, + }, + NP_OnSwingBufferCooldownMs = { + type = "range", + name = L["On Swing Buffer Cooldown (ms)"], + desc = L["The cooldown time in ms after an on swing spell before you can queue on swing spells"], + order = 45, + min = 0, + max = 5000, + step = 50, + get = function() + return GetCVar("NP_OnSwingBufferCooldownMs") + end, + set = function(v) + Nampower.db.profile.NP_OnSwingBufferCooldownMs = v + SetCVar("NP_OnSwingBufferCooldownMs", v) + end, + }, + NP_ChannelQueueWindowMs = { + type = "range", + name = L["Channel Queue Window (ms)"], + desc = L["The window in ms before a channel finishes where the next will get queued"], + order = 50, + min = 0, + max = 5000, + step = 50, + get = function() + return GetCVar("NP_ChannelQueueWindowMs") + end, + set = function(v) + Nampower.db.profile.NP_ChannelQueueWindowMs = v + SetCVar("NP_ChannelQueueWindowMs", v) + end, + }, + NP_TargetingQueueWindowMs = { + type = "range", + name = L["Targeting Queue Window (ms)"], + desc = L["The window in ms before a terrain targeting spell finishes where the next will get queued"], + order = 55, + min = 0, + max = 5000, + step = 50, + get = function() + return GetCVar("NP_TargetingQueueWindowMs") + end, + set = function(v) + Nampower.db.profile.NP_TargetingQueueWindowMs = v + SetCVar("NP_TargetingQueueWindowMs", v) + end, + }, + NP_CooldownQueueWindowMs = { + type = "range", + name = L["Cooldown Queue Window (ms)"], + desc = L["The window in ms before a spell coming off cooldown finishes where the next will get queued"], + order = 60, + min = 0, + max = 5000, + step = 50, + get = function() + return GetCVar("NP_CooldownQueueWindowMs") + end, + set = function(v) + Nampower.db.profile.NP_CooldownQueueWindowMs = v + SetCVar("NP_CooldownQueueWindowMs", v) + end, + } + }, + }, + spacerb = { + type = "header", + name = " ", + order = 50, + }, + cast_options = { + type = "group", + name = L["Cast Options"], + desc = L["Options for controlling casting behavior"], + order = 55, + args = { + NP_QuickcastTargetingSpells = { + type = "toggle", + name = L["Quickcast Targeting Spells"], + desc = L["Whether to enable quick casting for ALL spells with terrain targeting"], + order = 5, + get = function() + return GetCVar("NP_QuickcastTargetingSpells") == "1" + end, + set = function(v) + Nampower.db.profile.NP_QuickcastTargetingSpells = v + if v == true then + SetCVar("NP_QuickcastTargetingSpells", "1") + else + SetCVar("NP_QuickcastTargetingSpells", "0") + end + end, + }, + NP_DoubleCastToEndChannelEarly = { + type = "toggle", + name = L["Double Cast to End Channel Early"], + desc = L["Whether to allow double casting a spell within 350ms to end channeling on the next tick. Takes into account your ChannelLatencyReductionPercentage."], + order = 15, + get = function() + return GetCVar("NP_DoubleCastToEndChannelEarly") == "1" + end, + set = function(v) + Nampower.db.profile.NP_DoubleCastToEndChannelEarly = v + if v == true then + SetCVar("NP_DoubleCastToEndChannelEarly", "1") + else + SetCVar("NP_DoubleCastToEndChannelEarly", "0") + end + end, + }, + }, + }, + spacerc2 = { + type = "header", + name = " ", + order = 58, + }, + qol_options = { + type = "group", + name = L["QOL Options"], + desc = L["Quality of life options to prevent common issues"], + order = 59, + args = { + }, + }, + chat_bubbles = { + type = "group", + name = L["Chat Bubbles"], + desc = L["Chat bubble options"], + order = 120, + args = { + }, + }, + spacerc3 = { + type = "header", + name = " ", + order = 60, + }, + advanced_options = { + type = "group", + name = L["Advanced options"], + desc = L["Collection of various advanced options"], + order = 65, + args = { + NP_InterruptChannelsOutsideQueueWindow = { + type = "toggle", + name = L["Interrupt Channels Outside Queue Window"], + desc = L["Whether to allow interrupting channels (the original client behavior) when trying to cast a spell outside the channeling queue window"], + order = 70, + get = function() + return GetCVar("NP_InterruptChannelsOutsideQueueWindow") == "1" + end, + set = function(v) + Nampower.db.profile.NP_InterruptChannelsOutsideQueueWindow = v + if v == true then + SetCVar("NP_InterruptChannelsOutsideQueueWindow", "1") + else + SetCVar("NP_InterruptChannelsOutsideQueueWindow", "0") + end + end, + }, + NP_RetryServerRejectedSpells = { + type = "toggle", + name = L["Retry Server Rejected Spells"], + desc = L["Whether to retry spells that are rejected by the server for these reasons: SPELL_FAILED_ITEM_NOT_READY, SPELL_FAILED_NOT_READY, SPELL_FAILED_SPELL_IN_PROGRESS"], + order = 100, + get = function() + return GetCVar("NP_RetryServerRejectedSpells") == "1" + end, + set = function(v) + Nampower.db.profile.NP_RetryServerRejectedSpells = v + if v == true then + SetCVar("NP_RetryServerRejectedSpells", "1") + else + SetCVar("NP_RetryServerRejectedSpells", "0") + end + end, + }, + NP_ReplaceMatchingNonGcdCategory = { + type = "toggle", + name = L["Replace Matching Non GCD Category"], + desc = L["Whether to replace any queued non gcd spell when a new non gcd spell with the same non zero StartRecoveryCategory is cast. Most trinkets and spells are category 0 which are ignored by this setting. The primary use case is to switch which potion you have queued."], + order = 110, + get = function() + return GetCVar("NP_ReplaceMatchingNonGcdCategory") == "1" + end, + set = function(v) + Nampower.db.profile.NP_ReplaceMatchingNonGcdCategory = v + if v == true then + SetCVar("NP_ReplaceMatchingNonGcdCategory", "1") + else + SetCVar("NP_ReplaceMatchingNonGcdCategory", "0") + end + end, + }, + NP_OptimizeBufferUsingPacketTimings = { + type = "toggle", + name = L["Optimize Buffer Using Packet Timings"], + desc = L["Whether to attempt to optimize your buffer using your latency and server packet timings"], + order = 115, + get = function() + return GetCVar("NP_OptimizeBufferUsingPacketTimings") == "1" + end, + set = function(v) + Nampower.db.profile.NP_OptimizeBufferUsingPacketTimings = v + if v == true then + SetCVar("NP_OptimizeBufferUsingPacketTimings", "1") + else + SetCVar("NP_OptimizeBufferUsingPacketTimings", "0") + end + end, + }, + NP_MinBufferTimeMs = { + type = "range", + name = L["Minimum Buffer Time (ms)"], + desc = L["The minimum buffer delay in ms added to each cast"], + order = 80, + min = 0, + max = 300, + step = 1, + get = function() + return GetCVar("NP_MinBufferTimeMs") + end, + set = function(v) + Nampower.db.profile.NP_MinBufferTimeMs = v + SetCVar("NP_MinBufferTimeMs", v) + end, + }, + NP_NonGcdBufferTimeMs = { + type = "range", + name = L["Non GCD Buffer Time (ms)"], + desc = L["The buffer delay in ms added AFTER each cast that is not tied to the gcd"], + order = 85, + min = 0, + max = 300, + step = 1, + get = function() + return GetCVar("NP_NonGcdBufferTimeMs") + end, + set = function(v) + Nampower.db.profile.NP_NonGcdBufferTimeMs = v + SetCVar("NP_NonGcdBufferTimeMs", v) + end, + }, + NP_MaxBufferIncreaseMs = { + type = "range", + name = L["Max Buffer Increase (ms)"], + desc = L["The maximum amount of time in ms to increase the buffer by when the server rejects a cast"], + order = 90, + min = 0, + max = 100, + step = 5, + get = function() + return GetCVar("NP_MaxBufferIncreaseMs") + end, + set = function(v) + Nampower.db.profile.NP_MaxBufferIncreaseMs = v + SetCVar("NP_MaxBufferIncreaseMs", v) + end, + }, + NP_ChannelLatencyReductionPercentage = { + type = "range", + name = L["Channel Latency Reduction (%)"], + desc = L["The percentage of your latency to subtract from the end of a channel duration to optimize cast time while hopefully not losing any ticks"], + order = 125, + min = 0, + max = 100, + step = 1, + get = function() + return GetCVar("NP_ChannelLatencyReductionPercentage") + end, + set = function(v) + Nampower.db.profile.NP_ChannelLatencyReductionPercentage = v + SetCVar("NP_ChannelLatencyReductionPercentage", v) + end, + }, + spell_events = { + type = "group", + name = L["Spell Events"], + desc = L["Controls optional spell and combat event CVars."], + order = 150, + args = { + }, + }, + }, + }, + spacerc = { + type = "header", + name = " ", + order = 75, + }, + queued_spell_options = { + type = "group", + name = L["Queued Spell Display Options"], + desc = L["Options for displaying an icon for the queued spell"], + order = 85, + args = { + enabled = { + type = "toggle", + name = L["Display queued spell icon"], + desc = L["Whether to display an icon of the queued spell"], + order = 5, + get = function() + return Nampower.db.profile.show_queued_spell + end, + set = function(v) + Nampower.db.profile.show_queued_spell = v + toggleEventListener() + end, + }, + size = { + type = "range", + name = L["Icon size"], + desc = L["Change the spell icon size"], + order = 10, + min = 8, + max = 48, + step = 1, + get = function() + return Nampower.db.profile.queued_spell_size + end, + set = function(v) + Nampower.db.profile.queued_spell_size = v + Nampower.queued_spell:SetWidth(v) + Nampower.queued_spell:SetHeight(v) + end, + }, + draggable = { + type = "toggle", + name = L["Allow dragging"], + desc = L["Whether to allow interaction with the queued spell icon so you can move it around"], + order = 15, + get = function() + return Nampower.db.profile.queued_spell_enable_mouse + end, + set = function(v) + Nampower.db.profile.queued_spell_enable_mouse = v + Nampower.queued_spell:EnableMouse(v) + end, + }, + reset_position = { + type = "execute", + name = L["Reset Position"], + desc = L["Reset the position of the queued spell icon"], + order = 20, + func = function() + local scale = Nampower.queued_spell:GetEffectiveScale() + Nampower.queued_spell:ClearAllPoints() + Nampower.queued_spell:SetPoint("TOPLEFT", UIParent, "BOTTOMLEFT", 500 / scale, 500 / scale) + saveQueuedSpellPosition() + end, + }, + test = { + type = "execute", + name = L["Show/Hide for positioning"], + desc = L["Test the queued spell icon and position it to your liking"], + order = 25, + func = function() + if Nampower.queued_spell:IsVisible() then + Nampower.queued_spell:Hide() + else + Nampower.queued_spell:Show() + end + end, + }, + }, + }, + spacerd = { + type = "header", + name = " ", + order = 95, + }, + }, +} + +if Nampower:HasMinimumVersion(2, 8, 6) then + Nampower.cmdtable.args.NP_NameplateDistance = { + type = "range", + name = L["Nameplate Distance"], + desc = L["The distance in yards to show nameplates"], + order = 115, + min = 5, + max = 200, + step = 1, + get = function() + return GetCVar("NP_NameplateDistance") + end, + set = function(v) + Nampower.db.profile.NP_NameplateDistance = v + SetCVar("NP_NameplateDistance", v) + end, + } +end + +Nampower.cmdtable.args.qol_options.args.NP_PreventRightClickTargetChange = { + type = "toggle", + name = L["Prevent Right Click Target Change"], + desc = L["Whether to prevent right-clicking from changing your current target when in combat. If you don't have a target right click will still change your target even with this on. This is mainly to prevent accidentally changing targets in combat when trying to adjust your camera."], + order = 5, + get = function() + return GetCVar("NP_PreventRightClickTargetChange") == "1" + end, + set = function(v) + Nampower.db.profile.NP_PreventRightClickTargetChange = v + if v == true then + SetCVar("NP_PreventRightClickTargetChange", "1") + else + SetCVar("NP_PreventRightClickTargetChange", "0") + end + end, +} + +if Nampower:HasMinimumVersion(2, 11, 0) then + Nampower.cmdtable.args.qol_options.args.NP_SpamProtectionEnabled = { + type = "toggle", + name = L["Spam Protection"], + desc = L["Whether to enable spam protection functionality that blocks spamming spells while waiting for the server to respond to your initial cast due to issues spamming can cause"], + order = 10, + get = function() + return GetCVar("NP_SpamProtectionEnabled") == "1" + end, + set = function(v) + Nampower.db.profile.NP_SpamProtectionEnabled = v + if v == true then + SetCVar("NP_SpamProtectionEnabled", "1") + else + SetCVar("NP_SpamProtectionEnabled", "0") + end + end, + } + + Nampower.cmdtable.args.qol_options.args.NP_PreventRightClickPvPAttack = { + type = "toggle", + name = L["Prevent Right Click PvP Attack"], + desc = L["Whether to prevent right-clicking on PvP flagged players to avoid accidental PvP attacks"], + order = 15, + get = function() + return GetCVar("NP_PreventRightClickPvPAttack") == "1" + end, + set = function(v) + Nampower.db.profile.NP_PreventRightClickPvPAttack = v + if v == true then + SetCVar("NP_PreventRightClickPvPAttack", "1") + else + SetCVar("NP_PreventRightClickPvPAttack", "0") + end + end, + } +else + DEFAULT_CHAT_FRAME:AddMessage(L["update available"]) +end + +if Nampower:HasMinimumVersion(2, 15, 0) then + Nampower.cmdtable.args.cast_options.args.NP_QuickcastOnDoubleCast = { + type = "toggle", + name = L["Quickcast Targeting Spells on Double Cast"], + desc = L["Allows casting targeting spells by attempting to cast them twice as opposed to the default client behavior which cancels the targeting indicator"], + order = 10, + get = function() + return GetCVar("NP_QuickcastOnDoubleCast") == "1" + end, + set = function(v) + Nampower.db.profile.NP_QuickcastOnDoubleCast = v + if v == true then + SetCVar("NP_QuickcastOnDoubleCast", "1") + else + SetCVar("NP_QuickcastOnDoubleCast", "0") + end + end, + } +end + +if Nampower:HasMinimumVersion(2, 20, 0) then + Nampower.cmdtable.args.qol_options.args.NP_PreventMountingWhenBuffCapped = { + type = "toggle", + name = L["Prevent Mounting When Buff Capped"], + desc = L["Whether to prevent mounting when you have 32 buffs (buff capped) and are not already mounted. This prevents the issue where you mount but cannot dismount because the mount aura fails to apply due to the buff cap. When blocked, displays an error message."], + order = 20, + get = function() + return GetCVar("NP_PreventMountingWhenBuffCapped") == "1" + end, + set = function(v) + Nampower.db.profile.NP_PreventMountingWhenBuffCapped = v + if v == true then + SetCVar("NP_PreventMountingWhenBuffCapped", "1") + else + SetCVar("NP_PreventMountingWhenBuffCapped", "0") + end + end, + } + + Nampower.cmdtable.args.advanced_options.args.spell_events.args.NP_EnableAuraCastEvents = { + type = "toggle", + name = L["Enable Aura Cast Events"], + desc = L["Whether to enable AURA_CAST_ON_SELF and AURA_CAST_ON_OTHER events."], + order = 155, + get = function() + return GetCVar("NP_EnableAuraCastEvents") == "1" + end, + set = function(v) + if v == true then + SetCVar("NP_EnableAuraCastEvents", "1") + else + SetCVar("NP_EnableAuraCastEvents", "0") + end + end, + } +end + +if Nampower:HasMinimumVersion(2, 24, 0) then + Nampower.cmdtable.args.advanced_options.args.spell_events.args.NP_EnableAutoAttackEvents = { + type = "toggle", + name = L["Enable Auto Attack Events"], + desc = L["Whether to enable AUTO_ATTACK_SELF and AUTO_ATTACK_OTHER events."], + order = 160, + get = function() + return GetCVar("NP_EnableAutoAttackEvents") == "1" + end, + set = function(v) + if v == true then + SetCVar("NP_EnableAutoAttackEvents", "1") + else + SetCVar("NP_EnableAutoAttackEvents", "0") + end + end, + } +end + +if Nampower:HasMinimumVersion(2, 25, 0) then + Nampower.cmdtable.args.advanced_options.args.spell_events.args.NP_EnableSpellStartEvents = { + type = "toggle", + name = L["Enable Spell Start Events"], + desc = L["Whether to enable SPELL_START_SELF and SPELL_START_OTHER events."], + order = 165, + get = function() + return GetCVar("NP_EnableSpellStartEvents") == "1" + end, + set = function(v) + if v == true then + SetCVar("NP_EnableSpellStartEvents", "1") + else + SetCVar("NP_EnableSpellStartEvents", "0") + end + end, + } + + Nampower.cmdtable.args.advanced_options.args.spell_events.args.NP_EnableSpellGoEvents = { + type = "toggle", + name = L["Enable Spell Go Events"], + desc = L["Whether to enable SPELL_GO_SELF and SPELL_GO_OTHER events."], + order = 170, + get = function() + return GetCVar("NP_EnableSpellGoEvents") == "1" + end, + set = function(v) + if v == true then + SetCVar("NP_EnableSpellGoEvents", "1") + else + SetCVar("NP_EnableSpellGoEvents", "0") + end + end, + } +end + +if Nampower:HasMinimumVersion(2, 26, 0) then + Nampower.cmdtable.args.advanced_options.args.spell_events.args.NP_EnableSpellHealEvents = { + type = "toggle", + name = L["Enable Spell Heal Events"], + desc = L["Whether to enable SPELL_HEAL_BY_SELF, SPELL_HEAL_BY_OTHER, and SPELL_HEAL_ON_SELF events."], + order = 175, + get = function() + return GetCVar("NP_EnableSpellHealEvents") == "1" + end, + set = function(v) + if v == true then + SetCVar("NP_EnableSpellHealEvents", "1") + else + SetCVar("NP_EnableSpellHealEvents", "0") + end + end, + } + + Nampower.cmdtable.args.advanced_options.args.spell_events.args.NP_EnableSpellEnergizeEvents = { + type = "toggle", + name = L["Enable Spell Energize Events"], + desc = L["Whether to enable SPELL_ENERGIZE_BY_SELF, SPELL_ENERGIZE_BY_OTHER, and SPELL_ENERGIZE_ON_SELF events."], + order = 180, + get = function() + return GetCVar("NP_EnableSpellEnergizeEvents") == "1" + end, + set = function(v) + if v == true then + SetCVar("NP_EnableSpellEnergizeEvents", "1") + else + SetCVar("NP_EnableSpellEnergizeEvents", "0") + end + end, + } +end + +if Nampower:HasMinimumVersion(2, 39, 0) then + Nampower.cmdtable.args.advanced_options.args.unit_events = { + type = "group", + name = L["Unit Event Filters"], + desc = L["Controls which unit identifiers trigger unit events (UNIT_HEALTH, UNIT_COMBAT, etc.). In the base game the same event can fire multiple times for the same unit, once per identifying string (e.g. 'party1', 'raid1', 'mouseover'). Disabling unused identifiers reduces redundant event calls. Note: 'player', 'target', and 'pet' (your own pet) always trigger regardless of these settings, as they are critical."], + order = 200, + args = { + NP_EnableUnitEventsPet = { + type = "toggle", + name = L["Enable Pet Unit Events"], + desc = L["Whether to fire unit events (UNIT_HEALTH, UNIT_COMBAT, etc.) for party and raid pet identifiers ('party1pet', 'raid1pet', etc.). Party pets additionally require Enable Party Unit Events to be on; raid pets additionally require Enable Raid Unit Events to be on. Your own pet ('pet') always fires events regardless of this setting."], + order = 5, + get = function() + return GetCVar("NP_EnableUnitEventsPet") == "1" + end, + set = function(v) + if v == true then + SetCVar("NP_EnableUnitEventsPet", "1") + else + SetCVar("NP_EnableUnitEventsPet", "0") + end + end, + }, + NP_EnableUnitEventsParty = { + type = "toggle", + name = L["Enable Party Unit Events"], + desc = L["Whether to fire unit events (UNIT_HEALTH, UNIT_COMBAT, etc.) for party member identifiers ('party1', 'party2', 'party3', 'party4'). Also required alongside Enable Pet Unit Events for party pet identifiers to fire."], + order = 10, + get = function() + return GetCVar("NP_EnableUnitEventsParty") == "1" + end, + set = function(v) + if v == true then + SetCVar("NP_EnableUnitEventsParty", "1") + else + SetCVar("NP_EnableUnitEventsParty", "0") + end + end, + }, + NP_EnableUnitEventsRaid = { + type = "toggle", + name = L["Enable Raid Unit Events"], + desc = L["Whether to fire unit events (UNIT_HEALTH, UNIT_COMBAT, etc.) for raid member identifiers ('raid1' through 'raid40'). Also required alongside Enable Pet Unit Events for raid pet identifiers to fire."], + order = 15, + get = function() + return GetCVar("NP_EnableUnitEventsRaid") == "1" + end, + set = function(v) + if v == true then + SetCVar("NP_EnableUnitEventsRaid", "1") + else + SetCVar("NP_EnableUnitEventsRaid", "0") + end + end, + }, + NP_EnableUnitEventsMouseover = { + type = "toggle", + name = L["Enable Mouseover Unit Events"], + desc = L["Whether to fire unit events (UNIT_HEALTH, UNIT_COMBAT, etc.) for the 'mouseover' unit identifier."], + order = 25, + get = function() + return GetCVar("NP_EnableUnitEventsMouseover") == "1" + end, + set = function(v) + if v == true then + SetCVar("NP_EnableUnitEventsMouseover", "1") + else + SetCVar("NP_EnableUnitEventsMouseover", "0") + end + end, + }, + NP_EnableUnitEventsGuid = { + type = "toggle", + name = L["Enable GUID Unit Events"], + desc = L["Whether to fire unit events (UNIT_HEALTH, UNIT_MANA, UNIT_AURA, etc.) using the raw GUID as the unit token, mirroring SuperWoW behavior. Fires for every unit the client tracks — not just named tokens like 'player', 'party1', 'raid1' — which can cause significant event spam in raids, BGs, and crowded zones. Older addons (e.g. pfUI) written for standard named tokens may have performance issues receiving GUID-based events. Addons needing GUID tracking (e.g. Automarker, Cursive) should use the new dedicated UNIT_HEALTH_GUID, UNIT_MANA_GUID, etc. events instead, allowing this to be safely disabled."], + order = 30, + get = function() + return GetCVar("NP_EnableUnitEventsGuid") == "1" + end, + set = function(v) + if v == true then + SetCVar("NP_EnableUnitEventsGuid", "1") + else + SetCVar("NP_EnableUnitEventsGuid", "0") + end + end, + }, + NP_EnableUnitEventsGuidFiltering = { + type = "toggle", + name = L["Enable GUID Unit Event Filtering"], + desc = L["When enabled, suppresses high-frequency GUID events that cause spam in older addons — specifically UNIT_AURA, UNIT_HEALTH, UNIT_MANA, and similar events below UNIT_COMBAT, plus UNIT_NAME_UPDATE, UNIT_PORTRAIT_UPDATE, UNIT_INVENTORY_CHANGED, and PLAYER_GUILD_UPDATE. UNIT_COMBAT_GUID and other less frequent GUID events are still fired. Has no effect if Enable GUID Unit Events is disabled. This is a direct replacement for the 'Filter GUID Events' option in PerfBoost."], + order = 35, + get = function() + return GetCVar("NP_EnableUnitEventsGuidFiltering") == "1" + end, + set = function(v) + Nampower.db.profile.NP_EnableUnitEventsGuidFiltering = v + if v == true then + SetCVar("NP_EnableUnitEventsGuidFiltering", "1") + else + SetCVar("NP_EnableUnitEventsGuidFiltering", "0") + end + end, + }, + }, + } +end + +if Nampower:HasMinimumVersion(3, 1, 0) then + Nampower.cmdtable.args.qol_options.args.NP_PreserveGreaterDemonAutocast = { + type = "toggle", + name = L["Preserve Greater Demon Autocast"], + desc = L["Whether to remember and restore Felguard/Doomguard autocast preferences when swapping or resummoning those greater demons."], + order = 25, + get = function() + return GetCVar("NP_PreserveGreaterDemonAutocast") == "1" + end, + set = function(v) + Nampower.db.profile.NP_PreserveGreaterDemonAutocast = v + if v == true then + SetCVar("NP_PreserveGreaterDemonAutocast", "1") + else + SetCVar("NP_PreserveGreaterDemonAutocast", "0") + end + end, + } + +end + +if Nampower:HasMinimumVersion(4, 3, 0) then + Nampower.cmdtable.args.qol_options.args.NP_EnableEnhancedTooltips = { + type = "toggle", + name = L["Enable Enhanced Tooltips"], + desc = L["Whether to enable nampower's tooltip additions such as spell proc chance, ICD, and item cooldown text."], + order = 30, + get = function() + return GetCVar("NP_EnableEnhancedTooltips") == "1" + end, + set = function(v) + Nampower.db.profile.NP_EnableEnhancedTooltips = v + if v == true then + SetCVar("NP_EnableEnhancedTooltips", "1") + else + SetCVar("NP_EnableEnhancedTooltips", "0") + end + end, + } +end + +if Nampower:HasMinimumVersion(3, 3, 0) then + Nampower.cmdtable.args.chat_bubbles.args.ChatBubbles = { + type = "toggle", + name = L["Chat Bubbles (Say/Yell)"], + desc = L["Whether to enable chat bubbles for /say and /yell messages."], + order = 5, + get = function() + return GetCVar("ChatBubbles") == "1" + end, + set = function(v) + Nampower.db.profile.ChatBubbles = v + if v == true then + SetCVar("ChatBubbles", "1") + else + SetCVar("ChatBubbles", "0") + end + end, + } + + Nampower.cmdtable.args.chat_bubbles.args.ChatBubblesParty = { + type = "toggle", + name = L["Chat Bubbles (Party)"], + desc = L["Whether to enable chat bubbles for /party messages."], + order = 10, + get = function() + return GetCVar("ChatBubblesParty") == "1" + end, + set = function(v) + Nampower.db.profile.ChatBubblesParty = v + if v == true then + SetCVar("ChatBubblesParty", "1") + else + SetCVar("ChatBubblesParty", "0") + end + end, + } + + Nampower.cmdtable.args.chat_bubbles.args.NP_ChatBubblesWhisper = { + type = "toggle", + name = L["Chat Bubbles (Whisper)"], + desc = L["Whether to enable chat bubbles for /whisper messages."], + order = 15, + get = function() + return GetCVar("NP_ChatBubblesWhisper") == "1" + end, + set = function(v) + Nampower.db.profile.NP_ChatBubblesWhisper = v + if v == true then + SetCVar("NP_ChatBubblesWhisper", "1") + else + SetCVar("NP_ChatBubblesWhisper", "0") + end + end, + } + + Nampower.cmdtable.args.chat_bubbles.args.NP_ChatBubblesRaid = { + type = "toggle", + name = L["Chat Bubbles (Raid)"], + desc = L["Whether to enable chat bubbles for /raid messages."], + order = 20, + get = function() + return GetCVar("NP_ChatBubblesRaid") == "1" + end, + set = function(v) + Nampower.db.profile.NP_ChatBubblesRaid = v + if v == true then + SetCVar("NP_ChatBubblesRaid", "1") + else + SetCVar("NP_ChatBubblesRaid", "0") + end + end, + } + + Nampower.cmdtable.args.chat_bubbles.args.NP_ChatBubblesBattleground = { + type = "toggle", + name = L["Chat Bubbles (Battleground)"], + desc = L["Whether to enable chat bubbles for battleground messages."], + order = 25, + get = function() + return GetCVar("NP_ChatBubblesBattleground") == "1" + end, + set = function(v) + Nampower.db.profile.NP_ChatBubblesBattleground = v + if v == true then + SetCVar("NP_ChatBubblesBattleground", "1") + else + SetCVar("NP_ChatBubblesBattleground", "0") + end + end, + } + + Nampower.cmdtable.args.chat_bubbles.args.NP_ChatBubbleDistance = { + type = "range", + name = L["Chat Bubble Distance"], + desc = L["The distance in yards to show chat bubbles"], + order = 30, + min = 5, + max = 100, + step = 1, + get = function() + local value = tonumber(GetCVar("NP_ChatBubbleDistance")) or 0 + return math.floor(value + 0.5) + end, + set = function(v) + Nampower.db.profile.NP_ChatBubbleDistance = v + SetCVar("NP_ChatBubbleDistance", v) + end, + } +else + Nampower.cmdtable.args.chat_bubbles = nil +end + +local deuce = Nampower:NewModule("Nampower Options Menu") +deuce.hasFuBar = IsAddOnLoaded("FuBar") and FuBar +deuce.consoleCmd = not deuce.hasFuBar + +NampowerOptions = AceLibrary("AceAddon-2.0"):new("AceDB-2.0", "FuBarPlugin-2.0") +NampowerOptions.name = "FuBar - Nampower" +NampowerOptions.hasIcon = "Interface\\Icons\\inv_misc_book_04" +NampowerOptions.defaultMinimapPosition = 180 +NampowerOptions.independentProfile = true +NampowerOptions.hideWithoutStandby = false + +NampowerOptions:RegisterDB("NampowerSettingsDB") + +NampowerOptions.OnMenuRequest = Nampower.cmdtable +local args = AceLibrary("FuBarPlugin-2.0"):GetAceOptionsDataTable(NampowerOptions) +for k, v in pairs(args) do + if NampowerOptions.OnMenuRequest.args[k] == nil then + NampowerOptions.OnMenuRequest.args[k] = v + end +end diff --git a/Payload/UnitXP_SP3.dll b/Payload/UnitXP_SP3.dll index 64ad7bbb4f81cf81a335d97c8538ec505cf45bbe..cdd6e0d2997e62013ab23d7a9ea7ef15db629b43 100644 GIT binary patch literal 185344 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 J)HX7zcwE(0dI;|Jn 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 z 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