.TOC file
Lua Code:
## Interface: 70000
## Title: <title>
## Notes:<desc>
## Author: Sweetsour
## Version: @project-version@
## SavedVariables: SSA_db
## X-Curse-Packaged-Version: r1
## X-Curse-Project-Name:<title>
## X-Curse-Project-ID: <title>
## X-Curse-Repository-ID: wow/<title>/mainline
## OptionalDeps: Ace3, LibStub
#@no-lib-strip@
Libs\LibStub\LibStub.lua
Libs\CallbackHander-1.0\CallbackHander-1.0.lua
Libs\AceAddon-3.0\AceAddon-3.0.xml
Libs\AceGUI-3.0\AceGUI-3.0.xml
Libs\AceHook-3.0\AceHook-3.0.xml
Libs\AceConfig-3.0\AceConfig-3.0.xml
Libs\AceDB-3.0\AceDB-3.0.xml
Libs\AceEvent-3.0\AceEvent-3.0.xml
Libs\AceLocale-3.0\AceLocale-3.0.xml
Libs\AceTimer-3.0\AceTimer-3.0.xml
#@end-no-lib-strip@
Libs\LibDataBroker-1.1\LibDataBroker-1.1.lua
embeds.xml
Locales\LocalizationCore.lua
Locales\enUS.lua
Locales\ptBR.lua
Locales\frFR.lua
Locales\deDE.lua
Locales\itIT.lua
Locales\koKR.lua
Locales\esMX.lua
Locales\ruRU.lua
Locales\zhCN.lua
Locales\esES.lua
Locales\zhTW.lua
SA_Core.lua
SA_Config.lua
Core File
Lua Code:
local FOLDER_NAME, SSA = ...
local Auras = LibStub("AceAddon-3.0"):NewAddon(FOLDER_NAME, "AceEvent-3.0", "AceHook-3.0", "AceTimer-3.0");
Auras.version = GetAddOnMetadata(FOLDER_NAME, "Version")
local L = LibStub("AceLocale-3.0"):GetLocale(FOLDER_NAME, true)
function Auras:OnInitialize()
local defaults = {
char = {
cooldowns = {},
info = {
totems = {
eShield = {
},
cBurst = {
absorb = 0;
}
}
},
aura = {
minor = {
[0] = {
WindShear = true,
Hex = true,
},
[1] = {
Thunderstorm = true,
EarthElemental = true,
FireElemental = true,
FlameShock = true,
EarthShock = true,
LavaBurst = true,
},
[2] = {
},
[3] = {
},
},
},
}
}
self.db = LibStub("AceDB-3.0"):New("SSA_db",defaults);
end
Config File
Lua Code:
local FOLDER_NAME, SSA = ...
local version = GetAddOnMetadata(FOLDER_NAME,"Version");
local L = LibStub("AceLocale-3.0"):GetLocale(FOLDER_NAME, true)
local Auras = LibStub("AceAddon-3.0"):GetAddon(FOLDER_NAME)
local AceGUI = LibStub("AceGUI-3.0");
SSA.widgets = {
checkbox = {
minor = {
[0] = {
},
[1] = {
},
[2] = {
},
[3] = {
}
},
major = {
[0] = {
},
[1] = {
},
[2] = {
},
[3] = {
}
}
},
};
local f = AceGUI:Create("Frame");
f:SetCallback("OnClose",function(widget) AceGUI:Release(widget) end);
f:SetLayout("Fill");
local function DrawGroup1(container)
-- Under Construction
end
local function DrawGroup2(container)
local MinorAuraGrp = AceGUI:Create("InlineGroup");
MinorAuraGrp:SetWidth(200);
MinorAuraGrp:SetHeight(200);
MinorAuraGrp:SetTitle(L["MinorAuras"]);
MinorAuraGrp:SetLayout("Fill");
container:AddChild(MinorAuraGrp);
local MajorAuraGrp = AceGUI:Create("InlineGroup");
MajorAuraGrp:SetWidth(400);
MajorAuraGrp:SetHeight(200);
MajorAuraGrp:SetTitle(L["MajorAuras"]);
MajorAuraGrp:SetLayout("Fill");
container:AddChild(MajorAuraGrp);
local checkbox = AceGUI:Create("CheckBox");
checkbox:SetType("checkbox");
checkbox:SetLabel(" "..L["Thunderstorm"]);
checkbox:SetCallback("OnValueChanged",function(self,event,value)
if (value) then
Auras.db.char.aura['minor'][1].Thunderstorm = true;
SSA.Thunderstorm:Show();
else
Auras.db.char.aura['minor'][1].Thunderstorm = false;
SSA.Thunderstorm:Hide();
end
end);
SSA.widgets.checkbox['minor'][1][51490] = checkbox;
MinorAuraGrp:AddChild(checkbox);
local checkbox = AceGUI:Create("CheckBox");
checkbox:SetType("checkbox");
checkbox:SetLabel(" "..L["EarthElemental"]);
checkbox:SetPoint("TOPLEFT",3,-13);
checkbox:SetCallback("OnValueChanged",function(self,event,value)
if (value) then
Auras.db.char.aura['minor'][1].EarthElemental = true;
SSA.EarthElemental:Show();
else
Auras.db.char.aura['minor'][1].EarthElemental = false;
SSA.EarthElemental:Hide();
end
end);
SSA.widgets.checkbox['minor'][1][198103] = checkbox;
MinorAuraGrp:AddChild(checkbox);
end
local function DrawGroup3(container)
-- Under Construction
end
local function DrawGroup4(container)
-- Under Construction
end
local function SelectGroup(container, event, group)
container:ReleaseChildren()
if group == "tab1" then
DrawGroup1(container)
elseif group == "tab2" then
DrawGroup2(container)
elseif group == "tab3" then
DrawGroup3(container)
elseif group == "tab4" then
DrawGroup4(container)
end
end
local tab = AceGUI:Create("TabGroup");
tab:SetLayout("Flow");
tab:SetTabs({{text="Shared",value="tab1"},{text="Elemental", value="tab2"}, {text="Enhancement", value="tab3"}, {text="Restoration",value="tab4"}});
tab:SetCallback("OnGroupSelected", SelectGroup);
tab:SelectTab("tab1")
f:AddChild(tab)
I should add that the second object I create in "DrawGroup2" (EartElemental) is being placed outside of the UI that I'm trying to place it in. The first object I create (Thunderstorm) is being placed in the UI group fine.
EDIT: Changing the group's layout to "Flow" seemed to have worked, but it doesn't look like I can control the size of the group now =/