Quantcast

Raid Marker custom visibility.

Darthpred [03-18-15 - 13:58]
Raid Marker custom visibility.
Cause why not
Filename
ElvUI_SLE/defaults/profile.lua
ElvUI_SLE/modules/raidmarkers.lua
ElvUI_SLE/options/raidmarkers_c.lua
diff --git a/ElvUI_SLE/defaults/profile.lua b/ElvUI_SLE/defaults/profile.lua
index 011136f..c415c54 100644
--- a/ElvUI_SLE/defaults/profile.lua
+++ b/ElvUI_SLE/defaults/profile.lua
@@ -388,6 +388,7 @@ P['sle'] = {
 	['raidmarkers'] = {
 		['enable'] = true,
 		['visibility'] = 'DEFAULT',
+		['customVisibility'] = "[noexists, nogroup] hide; show",
 		['backdrop'] = false,
 		['buttonSize'] = 22,
 		['spacing'] = 2,
diff --git a/ElvUI_SLE/modules/raidmarkers.lua b/ElvUI_SLE/modules/raidmarkers.lua
index cf69cb2..d1fc765 100644
--- a/ElvUI_SLE/modules/raidmarkers.lua
+++ b/ElvUI_SLE/modules/raidmarkers.lua
@@ -140,7 +140,7 @@ end

 function RM:ToggleSettings()
 	if self.db.enable then
-		RegisterStateDriver(self.frame, "visibility", self.db.visibility == 'DEFAULT' and '[noexists, nogroup] hide; show' or self.db.visibility == 'ALWAYS' and '[petbattle] hide; show' or '[group] show; [petbattle] hide; hide')
+		RegisterStateDriver(self.frame, "visibility", self.db.visibility == 'DEFAULT' and '[noexists, nogroup] hide; show' or self.db.visibility == 'ALWAYS' and '[petbattle] hide; show' or self.db.visibility == 'CUSTOM' and self.db.customVisibility or '[group] show; [petbattle] hide; hide')
 	else
 		UnregisterStateDriver(self.frame, "visibility")
 		self.frame:Hide()
diff --git a/ElvUI_SLE/options/raidmarkers_c.lua b/ElvUI_SLE/options/raidmarkers_c.lua
index 40e706f..18ba65b 100644
--- a/ElvUI_SLE/options/raidmarkers_c.lua
+++ b/ElvUI_SLE/options/raidmarkers_c.lua
@@ -38,39 +38,28 @@ local function configTable()
 				type = 'description',
 				name = "",
 			},
-			visibility = {
-				type = 'select',
-				order = 6,
-				name = L["Visibility"],
-				disabled = function() return not E.db.sle.raidmarkers.enable end,
-				values = {
-					DEFAULT = L['Default'],
-					INPARTY = AGGRO_WARNING_IN_PARTY,
-					ALWAYS = L['Always Display'],
-				},
-			},
 			backdrop = {
 				type = 'toggle',
-				order = 7,
+				order = 6,
 				name = L["Backdrop"],
 				disabled = function() return not E.db.sle.raidmarkers.enable end,
 			},
 			buttonSize = {
-				order = 8,
+				order = 7,
 				type = 'range',
 				name = L['Button Size'],
 				min = 16, max = 40, step = 1,
 				disabled = function() return not E.db.sle.raidmarkers.enable end,
 			},
 			spacing = {
-				order = 9,
+				order = 8,
 				type = 'range',
 				name = L["Button Spacing"],
 				min = 0, max = 10, step = 1,
 				disabled = function() return not E.db.sle.raidmarkers.enable end,
 			},
 			orientation = {
-				order = 10,
+				order = 9,
 				type = 'select',
 				name = L['Orientation'],
 				disabled = function() return not E.db.sle.raidmarkers.enable end,
@@ -81,12 +70,12 @@ local function configTable()
 			},
 			reverse = {
 				type = 'toggle',
-				order = 11,
+				order = 10,
 				name = L["Reverse"],
 				disabled = function() return not E.db.sle.raidmarkers.enable end,
 			},
 			modifier = {
-				order = 12,
+				order = 11,
 				type = 'select',
 				name = L['Modifier Key'],
 				desc = L['Set the modifier key for placing world markers.'],
@@ -97,6 +86,25 @@ local function configTable()
 					['alt-'] = ALT_KEY,
 				},
 			},
+			visibility = {
+				type = 'select',
+				order = 12,
+				name = L["Visibility"],
+				disabled = function() return not E.db.sle.raidmarkers.enable end,
+				values = {
+					DEFAULT = L['Default'],
+					INPARTY = AGGRO_WARNING_IN_PARTY,
+					ALWAYS = L['Always Display'],
+					CUSTOM = L["Custom"],
+				},
+			},
+			customVisibility = {
+				order = 13,
+				type = 'input',
+				width = 'full',
+				name = L["Visibility State"],
+				disabled = function() return E.db.sle.raidmarkers.visibility ~= "CUSTOM" or not E.db.sle.raidmarkers.enable end,
+			},
 		},
 	}
 end