Quantcast

Introduce the layouts module

Scott Sibley [01-06-11 - 08:12]
Introduce the layouts module
Filename
Modules/Layouts/Layouts.lua
Modules/Layouts/StarTip_Layouts.toc
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