Introduce the layouts module
Scott Sibley [01-06-11 - 08:12]
Introduce the layouts module
diff --git a/Modules/Layouts/Layouts.lua b/Modules/Layouts/Layouts.lua
new file mode 100644
index 0000000..a05c3ca
--- /dev/null
+++ b/Modules/Layouts/Layouts.lua
@@ -0,0 +1,133 @@
+local mod = StarTip:NewModule("Nameplates", "AceTimer-3.0")
+mod.name = "Hide Nameplates"
+mod.toggled = true
+mod.desc = "Toggle this module on to cause the tooltip to hide when mousing over nameplates and the control key is down."
+mod.defaultOff = true
+local _G = _G
+local StarTip = _G.StarTip
+local GameTooltip = _G.GameTooltip
+local options = {}
+
+local anchorsDict = {}
+
+for i, v in ipairs(anchors) do
+ anchorsDict[v] = i
+end
+
+local function copy(tbl)
+ if type(tbl) ~= "table" then return tbl end
+ local newTbl = {}
+ for k, v in pairs(tbl) do
+ newTbl[k] = copy(v)
+ end
+ return newTbl
+end
+
+
+local defaults = {
+ profile = {
+ layouts = {}
+ }
+}
+
+local options = {}
+local optionsDefaults = {
+}
+
+local update
+function mod:OnInitialize()
+ self.db = StarTip.db:RegisterNamespace(self:GetName(), defaults)
+end
+
+function mod:OnEnable()
+ StarTip:SetOptionsDisabled(options, false)
+end
+
+function mod:OnDisable()
+ StarTip:SetOptionsDisabled(options, true)
+end
+
+function mod:GetOptions()
+ options = {
+ layouts = {
+ name = "Layouts",
+ type = "group",
+ args = {
+ }
+ },
+ add = {
+ name = L["Add Layout"],
+ type = "execute",
+ func = function()
+ tinsert(self.db.profile.layouts, {UnitTooltip = {}, Bars = {}, Borders = {}})
+ end,
+ }
+ }
+ local UnitTooltip = StarTip:GetModule("UnitTooltip")
+ local names = UnitTooltip:GetNames()
+ local match = {}
+ for i, v in ipairs(names) do
+ match[v] = i
+ end
+ tinsert(match, L["Delete"])
+
+ for i, layout in ipairs(self.db.profile.layouts) do
+ options.layouts.args[tostring(i)] = {
+ name = layout.name,
+ type = "group",
+ args = {
+ UnitTooltip= {
+ name = L["Unit Tooltip"],
+ type = "group",
+ args = {}
+ }
+ },
+ order = i
+ }
+ for ii, vv in ipairs(layout.UnitTooltip) do
+ options.layouts.args[tostring(i)].args.UnitTooltip.args[tostring(ii)] = {
+ name = vv.name,
+ type = "group",
+ args = {
+ selection = {
+ name = L["Line Selection"],
+ values = names,
+ get = function()
+ return match[vv]
+ end,
+ set = function(info, val)
+ if ii == #names + 1 then
+ tremove(v, ii)
+ return
+ end
+ v[i][ii] = names[ii]
+ end,
+ order = 1
+ },
+ up = {
+ name = L["Move Up"],
+ type = "execute",
+ func = function()
+ if ii == 1 then return end
+ v[ii] = v[ii - 1]
+ v[ii - 1] = vv
+ end,
+ order = 2
+ },
+ down = {
+ name = L["Move Down"],
+ type = "execute",
+ func = function()
+ if ii == #match - 1 then return end
+ v[ii] = v[ii + 1]
+ v[ii + 1] = vv
+ end,
+ order = 3
+ }
+ },
+ order = ii
+ }
+ end
+ end
+ return options
+end
diff --git a/Modules/Layouts/StarTip_Layouts.toc b/Modules/Layouts/StarTip_Layouts.toc
new file mode 100644
index 0000000..28b2853
--- /dev/null
+++ b/Modules/Layouts/StarTip_Layouts.toc
@@ -0,0 +1,8 @@
+## Interface: 40000
+## Title: StarTip [Nameplates]
+## Notes: Tooltips from outerspace
+## Author: Starlon
+## Version: 1.0
+## Deps: StarTip
+
+Nameplates.lua
\ No newline at end of file