├── .docmeta ├── .gitignore ├── .gitmodules ├── .pkgmeta ├── Ace3.lua ├── Ace3.toc ├── AceAddon-3.0 ├── AceAddon-3.0.lua └── AceAddon-3.0.xml ├── AceBucket-3.0 ├── AceBucket-3.0.lua └── AceBucket-3.0.xml ├── AceComm-3.0 ├── AceComm-3.0.lua ├── AceComm-3.0.xml └── ChatThrottleLib.lua ├── AceConfig-3.0 ├── AceConfig-3.0.lua ├── AceConfig-3.0.xml ├── AceConfigCmd-3.0 │ ├── AceConfigCmd-3.0.lua │ └── AceConfigCmd-3.0.xml ├── AceConfigDialog-3.0 │ ├── AceConfigDialog-3.0.lua │ └── AceConfigDialog-3.0.xml └── AceConfigRegistry-3.0 │ ├── AceConfigRegistry-3.0.lua │ └── AceConfigRegistry-3.0.xml ├── AceConsole-3.0 ├── AceConsole-3.0.lua └── AceConsole-3.0.xml ├── AceCore-3.0 ├── AceCore-3.0.lua └── AceCore-3.0.xml ├── AceCursor-3.0 ├── AceCursor-3.0.lua └── AceCursor-3.0.xml ├── AceDB-3.0 ├── AceDB-3.0.lua └── AceDB-3.0.xml ├── AceDBOptions-3.0 ├── AceDBOptions-3.0.lua └── AceDBOptions-3.0.xml ├── AceEvent-3.0 ├── AceEvent-3.0.lua └── AceEvent-3.0.xml ├── AceGUI-3.0 ├── AceGUI-3.0.lua ├── AceGUI-3.0.xml └── widgets │ ├── AceGUIContainer-BlizOptionsGroup.lua │ ├── AceGUIContainer-DropDownGroup.lua │ ├── AceGUIContainer-Frame.lua │ ├── AceGUIContainer-InlineGroup.lua │ ├── AceGUIContainer-ScrollFrame.lua │ ├── AceGUIContainer-SimpleGroup.lua │ ├── AceGUIContainer-TabGroup.lua │ ├── AceGUIContainer-TreeGroup.lua │ ├── AceGUIContainer-Window.lua │ ├── AceGUIWidget-Button.lua │ ├── AceGUIWidget-CheckBox.lua │ ├── AceGUIWidget-ColorPicker.lua │ ├── AceGUIWidget-DropDown-Items.lua │ ├── AceGUIWidget-DropDown.lua │ ├── AceGUIWidget-EditBox.lua │ ├── AceGUIWidget-Heading.lua │ ├── AceGUIWidget-Icon.lua │ ├── AceGUIWidget-InteractiveLabel.lua │ ├── AceGUIWidget-Keybinding.lua │ ├── AceGUIWidget-Label.lua │ ├── AceGUIWidget-MultiLineEditBox.lua │ ├── AceGUIWidget-Slider.lua │ └── widgets.xml ├── AceHook-3.0 ├── AceHook-3.0.lua └── AceHook-3.0.xml ├── AceLocale-3.0 ├── AceLocale-3.0.lua └── AceLocale-3.0.xml ├── AceLocale-3.1 ├── AceLocale-3.1.lua └── AceLocale-3.1.xml ├── AceSerializer-3.0 ├── AceSerializer-3.0.lua └── AceSerializer-3.0.xml ├── AceTab-3.0 ├── AceTab-3.0.lua └── AceTab-3.0.xml ├── AceTimer-3.0 ├── AceTimer-3.0.lua └── AceTimer-3.0.xml ├── Bindings.xml ├── LICENSE.txt ├── README.md └── changelog.txt /.docmeta: -------------------------------------------------------------------------------- 1 | - 2 | type: luadoc 3 | input-files: 4 | - "Ace*/Ace*.lua" 5 | - "AceConfig-3.0/AceConfig*/AceConfig*.lua" 6 | output-directory: API 7 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Compiled Lua sources 2 | luac.out 3 | 4 | # luarocks build files 5 | *.src.rock 6 | *.zip 7 | *.tar.gz 8 | 9 | # Object files 10 | *.o 11 | *.os 12 | *.ko 13 | *.obj 14 | *.elf 15 | 16 | # Precompiled Headers 17 | *.gch 18 | *.pch 19 | 20 | # Libraries 21 | *.lib 22 | *.a 23 | *.la 24 | *.lo 25 | *.def 26 | *.exp 27 | 28 | # Shared objects (inc. Windows DLLs) 29 | *.dll 30 | *.so 31 | *.so.* 32 | *.dylib 33 | 34 | # Executables 35 | *.exe 36 | *.out 37 | *.app 38 | *.i*86 39 | *.x86_64 40 | *.hex 41 | 42 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "LibStub"] 2 | path = LibStub 3 | url = git@github.com:zerosnake0/LibStub.git 4 | [submodule "CallbackHandler-1.0"] 5 | path = CallbackHandler-1.0 6 | url = git@github.com:zerosnake0/CallbackHandler-1.0.git 7 | -------------------------------------------------------------------------------- /.pkgmeta: -------------------------------------------------------------------------------- 1 | package-as: Ace3 2 | 3 | ignore: 4 | - tests -------------------------------------------------------------------------------- /Ace3.lua: -------------------------------------------------------------------------------- 1 | 2 | -- This file is only there in standalone Ace3 and provides handy dev tool stuff I guess 3 | -- for now only /rl to reload your UI :) 4 | -- note the complete overkill use of AceAddon and console, ain't it cool? 5 | 6 | -- GLOBALS: next, loadstring, ReloadUI, geterrorhandler 7 | -- GLOBALS: BINDING_HEADER_ACE3, BINDING_NAME_RELOADUI, Ace3, LibStub 8 | 9 | -- BINDINGs labels 10 | BINDING_HEADER_ACE3 = "Ace3" 11 | BINDING_NAME_RELOADUI = "ReloadUI" 12 | -- 13 | 14 | local gui = LibStub("AceGUI-3.0") 15 | local reg = LibStub("AceConfigRegistry-3.0") 16 | local dialog = LibStub("AceConfigDialog-3.0") 17 | local AceCore = LibStub("AceCore-3.0") 18 | 19 | Ace3 = LibStub("AceAddon-3.0"):NewAddon("Ace3", "AceConsole-3.0") 20 | local Ace3 = Ace3 21 | 22 | local strfind = string.find 23 | local strtrim = AceCore.strtrim 24 | 25 | local selectedgroup 26 | local frame 27 | local select 28 | local status = {} 29 | local configs = {} 30 | 31 | local function frameOnClose() 32 | gui:Release(frame) 33 | frame = nil 34 | end 35 | 36 | local function RefreshConfigs() 37 | for name in reg:IterateOptionsTables() do 38 | configs[name] = name 39 | end 40 | end 41 | 42 | local function ConfigSelected(widget, event, _, value) 43 | selectedgroup = value 44 | dialog:Open(value, widget) 45 | end 46 | 47 | local old_CloseSpecialWindows 48 | 49 | -- GLOBALS: CloseSpecialWindows, next 50 | function Ace3:Open() 51 | if not old_CloseSpecialWindows then 52 | old_CloseSpecialWindows = CloseSpecialWindows 53 | CloseSpecialWindows = function() 54 | local found = old_CloseSpecialWindows() 55 | if frame then 56 | frame:Hide() 57 | return true 58 | end 59 | return found 60 | end 61 | end 62 | RefreshConfigs() 63 | if next(configs) == nil then 64 | self:Print("No Configs are Registered") 65 | return 66 | end 67 | 68 | if not frame then 69 | frame = gui:Create("Frame") 70 | frame:ReleaseChildren() 71 | frame:SetTitle("Ace3 Options") 72 | frame:SetLayout("FILL") 73 | frame:SetCallback("OnClose", frameOnClose) 74 | 75 | select = gui:Create("DropdownGroup") 76 | select:SetGroupList(configs) 77 | select:SetCallback("OnGroupSelected", ConfigSelected) 78 | frame:AddChild(select) 79 | end 80 | if not selectedgroup then 81 | selectedgroup = next(configs) 82 | end 83 | select:SetGroup(selectedgroup) 84 | frame:Show() 85 | end 86 | 87 | local function RefreshOnUpdate(this) 88 | select:SetGroup(selectedgroup) 89 | this:SetScript("OnUpdate", nil) 90 | end 91 | 92 | function Ace3:ConfigTableChanged(event, appName) 93 | if selectedgroup == appName and frame then 94 | frame.frame:SetScript("OnUpdate", RefreshOnUpdate) 95 | end 96 | end 97 | 98 | reg.RegisterCallback(Ace3, "ConfigTableChange", "ConfigTableChanged") 99 | 100 | function Ace3:PrintCmd(input) 101 | local _,_,input = strfind(strtrim(input), "^(.-);*$") 102 | local func, err = loadstring("LibStub(\"AceConsole-3.0\"):Print(" .. input .. ")") 103 | if not func then 104 | LibStub("AceConsole-3.0"):Print("Error: " .. err) 105 | else 106 | func() 107 | end 108 | end 109 | 110 | function Ace3:OnInitialize() 111 | self:RegisterChatCommand("ace3", function() self:Open() end) 112 | self:RegisterChatCommand("rl", function() ReloadUI() end) 113 | self:RegisterChatCommand("print", "PrintCmd") 114 | end 115 | -------------------------------------------------------------------------------- /Ace3.toc: -------------------------------------------------------------------------------- 1 | ## Interface: 11200 2 | 3 | ## Title: Lib: Ace3 4 | ## Notes: AddOn development framework 5 | ## Author: Ace3 Development Team 6 | ## X-Website: http://www.wowace.com 7 | ## X-Category: Library 8 | ## X-License: Limited BSD 9 | 10 | LibStub\LibStub.lua 11 | CallbackHandler-1.0\CallbackHandler-1.0.xml 12 | 13 | AceCore-3.0\AceCore-3.0.xml 14 | AceAddon-3.0\AceAddon-3.0.xml 15 | AceEvent-3.0\AceEvent-3.0.xml 16 | AceTimer-3.0\AceTimer-3.0.xml 17 | AceBucket-3.0\AceBucket-3.0.xml 18 | AceHook-3.0\AceHook-3.0.xml 19 | AceDB-3.0\AceDB-3.0.xml 20 | AceDBOptions-3.0\AceDBOptions-3.0.xml 21 | AceLocale-3.0\AceLocale-3.0.xml 22 | AceLocale-3.1\AceLocale-3.1.xml 23 | AceConsole-3.0\AceConsole-3.0.xml 24 | AceCursor-3.0\AceCursor-3.0.xml 25 | AceGUI-3.0\AceGUI-3.0.xml 26 | AceGUI-3.0\widgets\widgets.xml 27 | AceConfig-3.0\AceConfig-3.0.xml 28 | AceComm-3.0\AceComm-3.0.xml 29 | AceTab-3.0\AceTab-3.0.xml 30 | AceSerializer-3.0\AceSerializer-3.0.xml 31 | 32 | Ace3.lua 33 | -------------------------------------------------------------------------------- /AceAddon-3.0/AceAddon-3.0.xml: -------------------------------------------------------------------------------- 1 | 3 |