Quantcast

4.6.9

Steven Jackson [09-29-14 - 23:56]
4.6.9
Filename
Interface/AddOns/SVUI/scripts/ego.lua
Interface/AddOns/SVUI/setup/installer.lua
Interface/AddOns/SVUI/setup/presets.lua
Interface/AddOns/SVUI/system/animate.lua
diff --git a/Interface/AddOns/SVUI/scripts/ego.lua b/Interface/AddOns/SVUI/scripts/ego.lua
index d177c26..c300f57 100644
--- a/Interface/AddOns/SVUI/scripts/ego.lua
+++ b/Interface/AddOns/SVUI/scripts/ego.lua
@@ -46,22 +46,27 @@ local playerGUID;
 CORE FUNCTIONS
 ##########################################################
 ]]--
-function EgoFrame:LaunchPopup()
+local LaunchPopup = function(self, emote)
+	local size = SVUIParent:GetHeight()
 	self.Model:Show()
-	self.anim[2]:SetOffset(500, -500)
+	self.anim[2]:SetOffset(size, -size)
 	self.anim[2]:SetOffset(0, 0)
 	self.anim:Play()
-	self.Model:SetAnimation(74)
+	self.Model:SetAnimation(emote)
 end

 local Ego_OnEvent = function(self, event)
 	if event == "ACHIEVEMENT_EARNED" then
-		self:LaunchPopup()
+		self:LaunchPopup(74)
 	else
-		self:LaunchPopup()
+		self:LaunchPopup(84)
 	end
 end

+function BeAwesome()
+	EgoFrame:LaunchPopup(74)
+end
+
 function SV:ToggleEgo()
 	if not SV.db.general.ego then
 		EgoFrame:UnregisterEvent("ACHIEVEMENT_EARNED")
@@ -77,23 +82,26 @@ end
 local EgoPop_OnUpdate = function(self) self.parent:SetAlpha(0) end

 local function LoadSVEgo()
+	local size = UIParent:GetWidth()
 	EgoFrame:SetParent(SV.UIParent)
-	EgoFrame:SetPoint("BOTTOMRIGHT", UIParent, "BOTTOMRIGHT", 0, 0)
-	EgoFrame:SetWidth(500)
-	EgoFrame:SetHeight(500)
+	EgoFrame:SetPoint("TOP", SV.UIParent, "TOP", 0, 0)
+	EgoFrame:SetWidth(size)
+	EgoFrame:SetHeight(size)
+	EgoFrame.LaunchPopup = LaunchPopup

 	local model = CreateFrame("PlayerModel", "EgoFrameModel", EgoFrame)
-	model:SetPoint("TOPLEFT",EgoFrame,25,-25)
-	model:SetPoint("BOTTOMRIGHT",EgoFrame,-25,25)
-	model:SetFrameStrata("DIALOG")
-	model:SetPosition(0,0,0)
+	model:SetAllPoints(EgoFrame)
 	model:SetUnit("player")
 	model:Hide()

 	EgoFrame.Model = model

-	SV.Animate:Slide(EgoFrame, 500, -500, true)
+	SV.Animate:Slide(EgoFrame, size, -size, true, 1.5)
 	EgoFrame:SetAlpha(0)
 	EgoFrame.anim[4]:SetScript("OnFinished", EgoPop_OnUpdate)
+
+	SLASH_SVUI_BADASS1="/badass"
+	SlashCmdList["SVUI_BADASS"] = BeAwesome;
 end
+
 SVLib:NewScript(LoadSVEgo)
\ No newline at end of file
diff --git a/Interface/AddOns/SVUI/setup/installer.lua b/Interface/AddOns/SVUI/setup/installer.lua
index 2985fb4..5431c03 100644
--- a/Interface/AddOns/SVUI/setup/installer.lua
+++ b/Interface/AddOns/SVUI/setup/installer.lua
@@ -217,9 +217,13 @@ local function UFMoveRightQuadrant(toggle)
 		anchors.SVUI_ArenaHolder_MOVE = "RIGHTSVUIParentRIGHT-1050"
 		anchors.Tooltip_MOVE = "BOTTOMRIGHTSVUIParentBOTTOMRIGHT-284"..dH;
 	end
-end
-
-local function SetUserScreen(rez, preserve)
+end
+--[[
+##########################################################
+GLOBAL/MODULE FUNCTIONS
+##########################################################
+]]--
+function SV.Setup:UserScreen(rez, preserve)
 	if not preserve then
 		if okToResetMOVE then
 			SV.Mentalo:Reset("")
@@ -283,12 +287,8 @@ local function SetUserScreen(rez, preserve)
 		SVLib:Update('SVUnit')
 		SV:SavedPopup()
 	end
-end
---[[
-##########################################################
-GLOBAL/MODULE FUNCTIONS
-##########################################################
-]]--
+end
+
 function SV.Setup:ChatConfigs(mungs)
 	forceCVars()
 	FCF_ResetChatWindows()
@@ -570,7 +570,7 @@ local OptionButton_OnClick = function(self)
 		end
 	end
 	if(SV.Setup[fn] and type(SV.Setup[fn]) == "function") then
-		SV.Setup[fn](nil, self.Arg)
+		SV.Setup[fn](SV.Setup, self.Arg)
 	end
 end

@@ -581,6 +581,11 @@ local InstallerFrame_PreparePage = function(self)
 	self.Option01.FuncName = nil
 	self.Option01.Arg = nil
 	self.Option01.ClickIndex = nil
+	self.Option01:SetWidth(160)
+	self.Option01.texture:Size(160, 160)
+	self.Option01.texture:SetPoint("CENTER", self.Option01, "BOTTOM", 0, -(160 * 0.09))
+	self.Option01:ClearAllPoints()
+	self.Option01:SetPoint("BOTTOM", 0, 15)

 	self.Option02:Hide()
 	self.Option02:SetScript("OnClick",nil)
@@ -588,6 +593,8 @@ local InstallerFrame_PreparePage = function(self)
 	self.Option02.FuncName = nil
 	self.Option02.Arg = nil
 	self.Option02.ClickIndex = nil
+	self.Option02:ClearAllPoints()
+	self.Option02:SetPoint("BOTTOMLEFT", self, "BOTTOM", 4, 15)

 	self.Option03:Hide()
 	self.Option03:SetScript("OnClick",nil)
@@ -602,6 +609,11 @@ local InstallerFrame_PreparePage = function(self)
 	self.Option1.FuncName = nil
 	self.Option1.Arg = nil
 	self.Option1.ClickIndex = nil
+	self.Option1:SetWidth(160)
+	self.Option1.texture:Size(160, 160)
+	self.Option1.texture:SetPoint("CENTER", self.Option1, "BOTTOM", 0, -(160 * 0.09))
+	self.Option1:ClearAllPoints()
+	self.Option1:SetPoint("BOTTOM", 0, 15)

 	self.Option2:Hide()
 	self.Option2:SetScript('OnClick',nil)
@@ -609,6 +621,11 @@ local InstallerFrame_PreparePage = function(self)
 	self.Option2.FuncName = nil
 	self.Option2.Arg = nil
 	self.Option2.ClickIndex = nil
+	self.Option2:SetWidth(120)
+	self.Option2.texture:Size(120, 120)
+	self.Option2.texture:SetPoint("CENTER", self.Option2, "BOTTOM", 0, -(120 * 0.09))
+	self.Option2:ClearAllPoints()
+	self.Option2:SetPoint("BOTTOMLEFT", self, "BOTTOM", 4, 15)

 	self.Option3:Hide()
 	self.Option3:SetScript('OnClick',nil)
@@ -616,6 +633,11 @@ local InstallerFrame_PreparePage = function(self)
 	self.Option3.FuncName = nil
 	self.Option3.Arg = nil
 	self.Option3.ClickIndex = nil
+	self.Option3:SetWidth(120)
+	self.Option3.texture:Size(120, 120)
+	self.Option3.texture:SetPoint("CENTER", self.Option3, "BOTTOM", 0, -(120 * 0.09))
+	self.Option3:ClearAllPoints()
+	self.Option3:SetPoint("LEFT", self.Option2, "RIGHT", 4, 0)

 	self.Option4:Hide()
 	self.Option4:SetScript('OnClick',nil)
@@ -623,6 +645,11 @@ local InstallerFrame_PreparePage = function(self)
 	self.Option4.FuncName = nil
 	self.Option4.Arg = nil
 	self.Option4.ClickIndex = nil
+	self.Option4:SetWidth(110)
+	self.Option4.texture:Size(110, 110)
+	self.Option4.texture:SetPoint("CENTER", self.Option4, "BOTTOM", 0, -(110 * 0.09))
+	self.Option4:ClearAllPoints()
+	self.Option4:SetPoint("LEFT", self.Option3, "RIGHT", 4, 0)

 	self.SubTitle:SetText("")
 	self.Desc1:SetText("")
@@ -651,13 +678,14 @@ end
 local InstallerFrame_SetPage = function(self, newPage)
 	PageData, MAX_PAGE = SV.Setup:CopyPage(newPage)
 	CURRENT_PAGE = newPage;
+	local willShowLayout = CURRENT_PAGE == 5 or CURRENT_PAGE == 6

 	self:PreparePage()
-	self.Status.text:SetText(CURRENT_PAGE.."  /  "..MAX_PAGE)
-
-	ShowLayout()
+	self.Status:SetText(CURRENT_PAGE.."  /  "..MAX_PAGE)

-	for option, data in pairs(PageSettings) do
+	ShowLayout(willShowLayout)
+
+	for option, data in pairs(PageData) do
 		if(type(data) == "table" and data[1] and data[2]) then
 			if(data[4] and not data[4]()) then return end;
 			self[option]:Show()
@@ -765,11 +793,11 @@ function SV.Setup:Install(autoLoaded)
 		frame.Next = CreateFrame("Button", nil, frame, "UIPanelButtonTemplate")
 		frame.Next:RemoveTextures()
 		frame.Next:Size(110, 25)
-		frame.Next:Point("BOTTOMRIGHT", 50, 5)
+		frame.Next:SetPoint("BOTTOMRIGHT", 50, 5)
 		SetInstallButton(frame.Next)
 		frame.Next.texture = frame.Next:CreateTexture(nil, "BORDER")
 		frame.Next.texture:Size(110, 75)
-		frame.Next.texture:Point("RIGHT")
+		frame.Next.texture:SetPoint("RIGHT")
 		frame.Next.texture:SetTexture("Interface\\AddOns\\SVUI\\assets\\artwork\\Template\\OPTION-ARROW")
 		frame.Next.texture:SetVertexColor(1, 0.5, 0)
 		frame.Next.text = frame.Next:CreateFontString(nil, "OVERLAY")
@@ -791,11 +819,11 @@ function SV.Setup:Install(autoLoaded)
 		frame.Prev = CreateFrame("Button", nil, frame, "UIPanelButtonTemplate")
 		frame.Prev:RemoveTextures()
 		frame.Prev:Size(110, 25)
-		frame.Prev:Point("BOTTOMLEFT", -50, 5)
+		frame.Prev:SetPoint("BOTTOMLEFT", -50, 5)
 		SetInstallButton(frame.Prev)
 		frame.Prev.texture = frame.Prev:CreateTexture(nil, "BORDER")
 		frame.Prev.texture:Size(110, 75)
-		frame.Prev.texture:Point("LEFT")
+		frame.Prev.texture:SetPoint("LEFT")
 		frame.Prev.texture:SetTexture("Interface\\AddOns\\SVUI\\assets\\artwork\\Template\\OPTION-ARROW")
 		frame.Prev.texture:SetTexCoord(1, 0, 1, 1, 0, 0, 0, 1)
 		frame.Prev.texture:SetVertexColor(1, 0.5, 0)
@@ -818,12 +846,12 @@ function SV.Setup:Install(autoLoaded)
 		frame.Option01 = CreateFrame("Button", nil, frame, "UIPanelButtonTemplate")
 		frame.Option01:RemoveTextures()
 		frame.Option01:Size(160, 30)
-		frame.Option01:Point("BOTTOM", 0, 15)
+		frame.Option01:SetPoint("BOTTOM", 0, 15)
 		frame.Option01:SetText("")
 		SetInstallButton(frame.Option01)
 		frame.Option01.texture = frame.Option01:CreateTexture(nil, "BORDER")
 		frame.Option01.texture:Size(160, 160)
-		frame.Option01.texture:Point("CENTER", frame.Option01, "BOTTOM", 0, -15)
+		frame.Option01.texture:SetPoint("CENTER", frame.Option01, "BOTTOM", 0, -15)
 		frame.Option01.texture:SetTexture("Interface\\AddOns\\SVUI\\assets\\artwork\\Template\\OPTION")
 		frame.Option01.texture:SetGradient("VERTICAL", 0, 0.3, 0, 0, 0.7, 0)
 		frame.Option01:SetScript("OnEnter", function(this)
@@ -832,10 +860,6 @@ function SV.Setup:Install(autoLoaded)
 		frame.Option01:SetScript("OnLeave", function(this)
 			this.texture:SetGradient("VERTICAL", 0, 0.3, 0, 0, 0.7, 0)
 		end)
-		hooksecurefunc(frame.Option01, "SetWidth", function(g, h)
-			g.texture:Size(h, h)
-			g.texture:Point("CENTER", g, "BOTTOM", 0, -(h * 0.09))
-		end)
 		frame.Option01:SetFrameLevel(frame.Option01:GetFrameLevel() + 10)
 		frame.Option01:Hide()

@@ -844,12 +868,12 @@ function SV.Setup:Install(autoLoaded)
 		frame.Option02 = CreateFrame("Button", nil, frame, "UIPanelButtonTemplate")
 		frame.Option02:RemoveTextures()
 		frame.Option02:Size(130, 30)
-		frame.Option02:Point("BOTTOMLEFT", frame, "BOTTOM", 4, 15)
+		frame.Option02:SetPoint("BOTTOMLEFT", frame, "BOTTOM", 4, 15)
 		frame.Option02:SetText("")
 		SetInstallButton(frame.Option02)
 		frame.Option02.texture = frame.Option02:CreateTexture(nil, "BORDER")
 		frame.Option02.texture:Size(130, 110)
-		frame.Option02.texture:Point("CENTER", frame.Option02, "BOTTOM", 0, -15)
+		frame.Option02.texture:SetPoint("CENTER", frame.Option02, "BOTTOM", 0, -15)
 		frame.Option02.texture:SetTexture("Interface\\AddOns\\SVUI\\assets\\artwork\\Template\\OPTION")
 		frame.Option02.texture:SetGradient("VERTICAL", 0.3, 0, 0, 0.7, 0, 0)
 		frame.Option02:SetScript("OnEnter", function(this)
@@ -858,19 +882,14 @@ function SV.Setup:Install(autoLoaded)
 		frame.Option02:SetScript("OnLeave", function(this)
 			this.texture:SetGradient("VERTICAL", 0.3, 0, 0, 0.7, 0, 0)
 		end)
-		hooksecurefunc(frame.Option02, "SetWidth", function(g, h)
-			g.texture:Size(h, h)
-			g.texture:Point("CENTER", g, "BOTTOM", 0, -(h * 0.09))
-		end)
 		frame.Option02:SetScript("OnShow", function()
-			frame.Option01:SetWidth(130)
-			frame.Option01:ClearAllPoints()
-			frame.Option01:Point("BOTTOMRIGHT", frame, "BOTTOM", -4, 15)
-		end)
-		frame.Option02:SetScript("OnHide", function()
-			frame.Option01:SetWidth(160)
-			frame.Option01:ClearAllPoints()
-			frame.Option01:Point("BOTTOM", 0, 15)
+			if(not frame.Option03:IsShown()) then
+				frame.Option01:SetWidth(130)
+				frame.Option01.texture:Size(130, 130)
+				frame.Option01.texture:SetPoint("CENTER", frame.Option01, "BOTTOM", 0, -(130 * 0.09))
+				frame.Option01:ClearAllPoints()
+				frame.Option01:SetPoint("BOTTOMRIGHT", frame, "BOTTOM", -4, 15)
+			end
 		end)
 		frame.Option02:SetFrameLevel(frame.Option01:GetFrameLevel() + 10)
 		frame.Option02:Hide()
@@ -880,12 +899,12 @@ function SV.Setup:Install(autoLoaded)
 		frame.Option03 = CreateFrame("Button", nil, frame, "UIPanelButtonTemplate")
 		frame.Option03:RemoveTextures()
 		frame.Option03:Size(130, 30)
-		frame.Option03:Point("BOTTOM", frame, "BOTTOM", 0, 15)
+		frame.Option03:SetPoint("BOTTOM", frame, "BOTTOM", 0, 15)
 		frame.Option03:SetText("")
 		SetInstallButton(frame.Option03)
 		frame.Option03.texture = frame.Option03:CreateTexture(nil, "BORDER")
 		frame.Option03.texture:Size(130, 110)
-		frame.Option03.texture:Point("CENTER", frame.Option03, "BOTTOM", 0, -15)
+		frame.Option03.texture:SetPoint("CENTER", frame.Option03, "BOTTOM", 0, -15)
 		frame.Option03.texture:SetTexture("Interface\\AddOns\\SVUI\\assets\\artwork\\Template\\OPTION")
 		frame.Option03.texture:SetGradient("VERTICAL", 0, 0.1, 0.3, 0, 0.5, 0.7)
 		frame.Option03:SetScript("OnEnter", function(this)
@@ -894,25 +913,22 @@ function SV.Setup:Install(autoLoaded)
 		frame.Option03:SetScript("OnLeave", function(this)
 			this.texture:SetGradient("VERTICAL", 0, 0.1, 0.3, 0, 0.5, 0.7)
 		end)
-		hooksecurefunc(frame.Option03, "SetWidth", function(g, h)
-			g.texture:Size(h, h)
-			g.texture:Point("CENTER", g, "BOTTOM", 0, -(h * 0.09))
-		end)
-		frame.Option03:SetScript("OnShow", function(self)
-			self:SetWidth(130)
+		frame.Option03:SetScript("OnShow", function(this)
+			this:SetWidth(130)
+			this.texture:Size(130, 130)
+			this.texture:SetPoint("CENTER", this, "BOTTOM", 0, -(130 * 0.09))
+
 			frame.Option01:SetWidth(130)
+			frame.Option01.texture:Size(130, 130)
+			frame.Option01.texture:SetPoint("CENTER", frame.Option01, "BOTTOM", 0, -(130 * 0.09))
 			frame.Option01:ClearAllPoints()
-			frame.Option01:Point("RIGHT", self, "LEFT", -8, 0)
+			frame.Option01:SetPoint("RIGHT", this, "LEFT", -8, 0)
+
 			frame.Option02:SetWidth(130)
+			frame.Option02.texture:Size(130, 130)
+			frame.Option02.texture:SetPoint("CENTER", frame.Option02, "BOTTOM", 0, -(130 * 0.09))
 			frame.Option02:ClearAllPoints()
-			frame.Option02:Point("LEFT", self, "RIGHT", 8, 0)
-		end)
-		frame.Option03:SetScript("OnHide", function()
-			frame.Option01:SetWidth(160)
-			frame.Option01:ClearAllPoints()
-			frame.Option01:Point("BOTTOM", 0, 15)
-			frame.Option02:ClearAllPoints()
-			frame.Option02:Point("BOTTOMLEFT", frame, "BOTTOM", 4, 15)
+			frame.Option02:SetPoint("LEFT", this, "RIGHT", 8, 0)
 		end)
 		frame.Option03:SetFrameLevel(frame.Option01:GetFrameLevel() + 10)
 		frame.Option03:Hide()
@@ -922,12 +938,12 @@ function SV.Setup:Install(autoLoaded)
 		frame.Option1 = CreateFrame("Button", nil, frame, "UIPanelButtonTemplate")
 		frame.Option1:RemoveTextures()
 		frame.Option1:Size(160, 30)
-		frame.Option1:Point("BOTTOM", 0, 15)
+		frame.Option1:SetPoint("BOTTOM", 0, 15)
 		frame.Option1:SetText("")
 		SetInstallButton(frame.Option1)
 		frame.Option1.texture = frame.Option1:CreateTexture(nil, "BORDER")
 		frame.Option1.texture:Size(160, 160)
-		frame.Option1.texture:Point("CENTER", frame.Option1, "BOTTOM", 0, -15)
+		frame.Option1.texture:SetPoint("CENTER", frame.Option1, "BOTTOM", 0, -15)
 		frame.Option1.texture:SetTexture("Interface\\AddOns\\SVUI\\assets\\artwork\\Template\\OPTION")
 		frame.Option1.texture:SetGradient("VERTICAL", 0.3, 0.3, 0.3, 0.7, 0.7, 0.7)
 		frame.Option1:SetScript("OnEnter", function(this)
@@ -936,10 +952,6 @@ function SV.Setup:Install(autoLoaded)
 		frame.Option1:SetScript("OnLeave", function(this)
 			this.texture:SetGradient("VERTICAL", 0.3, 0.3, 0.3, 0.7, 0.7, 0.7)
 		end)
-		hooksecurefunc(frame.Option1, "SetWidth", function(g, h)
-			g.texture:Size(h, h)
-			g.texture:Point("CENTER", g, "BOTTOM", 0, -(h * 0.09))
-		end)
 		frame.Option1:SetFrameLevel(frame.Option1:GetFrameLevel() + 10)
 		frame.Option1:Hide()

@@ -948,12 +960,12 @@ function SV.Setup:Install(autoLoaded)
 		frame.Option2 = CreateFrame("Button", nil, frame, "UIPanelButtonTemplate")
 		frame.Option2:RemoveTextures()
 		frame.Option2:Size(120, 30)
-		frame.Option2:Point("BOTTOMLEFT", frame, "BOTTOM", 4, 15)
+		frame.Option2:SetPoint("BOTTOMLEFT", frame, "BOTTOM", 4, 15)
 		frame.Option2:SetText("")
 		SetInstallButton(frame.Option2)
 		frame.Option2.texture = frame.Option2:CreateTexture(nil, "BORDER")
 		frame.Option2.texture:Size(120, 110)
-		frame.Option2.texture:Point("CENTER", frame.Option2, "BOTTOM", 0, -15)
+		frame.Option2.texture:SetPoint("CENTER", frame.Option2, "BOTTOM", 0, -15)
 		frame.Option2.texture:SetTexture("Interface\\AddOns\\SVUI\\assets\\artwork\\Template\\OPTION")
 		frame.Option2.texture:SetGradient("VERTICAL", 0.3, 0.3, 0.3, 0.7, 0.7, 0.7)
 		frame.Option2:SetScript("OnEnter", function(this)
@@ -962,19 +974,14 @@ function SV.Setup:Install(autoLoaded)
 		frame.Option2:SetScript("OnLeave", function(this)
 			this.texture:SetGradient("VERTICAL", 0.3, 0.3, 0.3, 0.7, 0.7, 0.7)
 		end)
-		hooksecurefunc(frame.Option2, "SetWidth", function(g, h)
-			g.texture:Size(h, h)
-			g.texture:Point("CENTER", g, "BOTTOM", 0, -(h * 0.09))
-		end)
 		frame.Option2:SetScript("OnShow", function()
-			frame.Option1:SetWidth(120)
-			frame.Option1:ClearAllPoints()
-			frame.Option1:Point("BOTTOMRIGHT", frame, "BOTTOM", -4, 15)
-		end)
-		frame.Option2:SetScript("OnHide", function()
-			frame.Option1:SetWidth(160)
-			frame.Option1:ClearAllPoints()
-			frame.Option1:Point("BOTTOM", 0, 15)
+			if(not frame.Option3:IsShown() and (not frame.Option4:IsShown())) then
+				frame.Option1:SetWidth(120)
+				frame.Option1.texture:Size(120, 120)
+				frame.Option1.texture:SetPoint("CENTER", frame.Option1, "BOTTOM", 0, -(120 * 0.09))
+				frame.Option1:ClearAllPoints()
+				frame.Option1:SetPoint("BOTTOMRIGHT", frame, "BOTTOM", -4, 15)
+			end
 		end)
 		frame.Option2:SetFrameLevel(frame.Option1:GetFrameLevel() + 10)
 		frame.Option2:Hide()
@@ -984,12 +991,12 @@ function SV.Setup:Install(autoLoaded)
 		frame.Option3 = CreateFrame("Button", nil, frame, "UIPanelButtonTemplate")
 		frame.Option3:RemoveTextures()
 		frame.Option3:Size(110, 30)
-		frame.Option3:Point("LEFT", frame.Option2, "RIGHT", 4, 0)
+		frame.Option3:SetPoint("LEFT", frame.Option2, "RIGHT", 4, 0)
 		frame.Option3:SetText("")
 		SetInstallButton(frame.Option3)
 		frame.Option3.texture = frame.Option3:CreateTexture(nil, "BORDER")
 		frame.Option3.texture:Size(110, 100)
-		frame.Option3.texture:Point("CENTER", frame.Option3, "BOTTOM", 0, -9)
+		frame.Option3.texture:SetPoint("CENTER", frame.Option3, "BOTTOM", 0, -9)
 		frame.Option3.texture:SetTexture("Interface\\AddOns\\SVUI\\assets\\artwork\\Template\\OPTION")
 		frame.Option3.texture:SetGradient("VERTICAL", 0.3, 0.3, 0.3, 0.7, 0.7, 0.7)
 		frame.Option3:SetScript("OnEnter", function(this)
@@ -998,21 +1005,26 @@ function SV.Setup:Install(autoLoaded)
 		frame.Option3:SetScript("OnLeave", function(this)
 			this.texture:SetGradient("VERTICAL", 0.3, 0.3, 0.3, 0.7, 0.7, 0.7)
 		end)
-		frame.Option3:SetScript("OnShow", function()
-			frame.Option1:SetWidth(110)
-			frame.Option1:ClearAllPoints()
-			frame.Option1:Point("RIGHT", frame.Option2, "LEFT", -4, 0)
-			frame.Option2:SetWidth(110)
-			frame.Option2:ClearAllPoints()
-			frame.Option2:Point("BOTTOM", frame, "BOTTOM", 0, 15)
-		end)
-		frame.Option3:SetScript("OnHide", function()
-			frame.Option1:SetWidth(160)
-			frame.Option1:ClearAllPoints()
-			frame.Option1:Point("BOTTOM", 0, 15)
-			frame.Option2:SetWidth(120)
-			frame.Option2:ClearAllPoints()
-			frame.Option2:Point("BOTTOMLEFT", frame, "BOTTOM", 4, 15)
+		frame.Option3:SetScript("OnShow", function(this)
+			if(not frame.Option4:IsShown()) then
+				frame.Option2:SetWidth(110)
+				frame.Option2.texture:Size(110, 110)
+				frame.Option2.texture:SetPoint("CENTER", frame.Option2, "BOTTOM", 0, -(110 * 0.09))
+				frame.Option2:ClearAllPoints()
+				frame.Option2:SetPoint("BOTTOM", frame, "BOTTOM", 0, 15)
+
+				frame.Option1:SetWidth(110)
+				frame.Option1.texture:Size(110, 110)
+				frame.Option1.texture:SetPoint("CENTER", frame.Option1, "BOTTOM", 0, -(110 * 0.09))
+				frame.Option1:ClearAllPoints()
+				frame.Option1:SetPoint("RIGHT", frame.Option2, "LEFT", -4, 0)
+
+				this:SetWidth(110)
+				this.texture:Size(110, 110)
+				this.texture:SetPoint("CENTER", this, "BOTTOM", 0, -(110 * 0.09))
+				this:ClearAllPoints()
+				this:SetPoint("LEFT", frame.Option2, "RIGHT", 4, 0)
+			end
 		end)
 		frame.Option3:SetFrameLevel(frame.Option1:GetFrameLevel() + 10)
 		frame.Option3:Hide()
@@ -1022,12 +1034,12 @@ function SV.Setup:Install(autoLoaded)
 		frame.Option4 = CreateFrame("Button", nil, frame, "UIPanelButtonTemplate")
 		frame.Option4:RemoveTextures()
 		frame.Option4:Size(110, 30)
-		frame.Option4:Point("LEFT", frame.Option3, "RIGHT", 4, 0)
+		frame.Option4:SetPoint("LEFT", frame.Option3, "RIGHT", 4, 0)
 		frame.Option4:SetText("")
 		SetInstallButton(frame.Option4)
 		frame.Option4.texture = frame.Option4:CreateTexture(nil, "BORDER")
 		frame.Option4.texture:Size(110, 100)
-		frame.Option4.texture:Point("CENTER", frame.Option4, "BOTTOM", 0, -9)
+		frame.Option4.texture:SetPoint("CENTER", frame.Option4, "BOTTOM", 0, -9)
 		frame.Option4.texture:SetTexture("Interface\\AddOns\\SVUI\\assets\\artwork\\Template\\OPTION")
 		frame.Option4.texture:SetGradient("VERTICAL", 0.3, 0.3, 0.3, 0.7, 0.7, 0.7)
 		frame.Option4:SetScript("OnEnter", function(this)
@@ -1037,20 +1049,24 @@ function SV.Setup:Install(autoLoaded)
 			this.texture:SetGradient("VERTICAL", 0.3, 0.3, 0.3, 0.7, 0.7, 0.7)
 		end)
 		frame.Option4:SetScript("OnShow", function()
-			frame.Option1:Width(110)
+
 			frame.Option2:Width(110)
-			frame.Option1:ClearAllPoints()
-			frame.Option1:Point("RIGHT", frame.Option2, "LEFT", -4, 0)
+			frame.Option2.texture:Size(110, 110)
+			frame.Option2.texture:SetPoint("CENTER", frame.Option2, "BOTTOM", 0, -(110 * 0.09))
 			frame.Option2:ClearAllPoints()
-			frame.Option2:Point("BOTTOMRIGHT", frame, "BOTTOM", -4, 15)
-		end)
-		frame.Option4:SetScript("OnHide", function()
-			frame.Option1:SetWidth(160)
+			frame.Option2:SetPoint("BOTTOMRIGHT", frame, "BOTTOM", -4, 15)
+
+			frame.Option1:Width(110)
+			frame.Option1.texture:Size(110, 110)
+			frame.Option1.texture:SetPoint("CENTER", frame.Option1, "BOTTOM", 0, -(110 * 0.09))
 			frame.Option1:ClearAllPoints()
-			frame.Option1:Point("BOTTOM", 0, 15)
-			frame.Option2:SetWidth(120)
-			frame.Option2:ClearAllPoints()
-			frame.Option2:Point("BOTTOMLEFT", frame, "BOTTOM", 4, 15)
+			frame.Option1:SetPoint("RIGHT", frame.Option2, "LEFT", -4, 0)
+
+			frame.Option3:SetWidth(110)
+			frame.Option3.texture:Size(110, 110)
+			frame.Option3.texture:SetPoint("CENTER", frame.Option3, "BOTTOM", 0, -(110 * 0.09))
+			frame.Option3:ClearAllPoints()
+			frame.Option3:SetPoint("LEFT", frame.Option2, "RIGHT", 4, 0)
 		end)

 		frame.Option4:SetFrameLevel(frame.Option1:GetFrameLevel() + 10)
@@ -1063,7 +1079,7 @@ function SV.Setup:Install(autoLoaded)
 		statusHolder:Size(150, 30)
 		statusHolder:Point("BOTTOM", frame, "TOP", 0, 2)

-		frame.Status = frame.Status:CreateFontString(nil, "OVERLAY")
+		frame.Status = statusHolder:CreateFontString(nil, "OVERLAY")
 		frame.Status:SetFont(SV.Media.font.numbers, 22, "OUTLINE")
 		frame.Status:SetPoint("CENTER")
 		frame.Status:SetText(CURRENT_PAGE.."  /  "..MAX_PAGE)
@@ -1111,7 +1127,7 @@ function SV.Setup:Install(autoLoaded)
 	end)

 	SVUI_InstallerFrame:Show()
-	NextPage()
+	SVUI_InstallerFrame:SetPage(1)
 	if(not autoLoaded) then
 		PlayThemeSong()
 	else
diff --git a/Interface/AddOns/SVUI/setup/presets.lua b/Interface/AddOns/SVUI/setup/presets.lua
index 404bc7c..37a24e8 100644
--- a/Interface/AddOns/SVUI/setup/presets.lua
+++ b/Interface/AddOns/SVUI/setup/presets.lua
@@ -1189,8 +1189,8 @@ local function LoadPageData()
 			["Desc2"] = isLowRez,
 			["Desc3"] = L["CHOOSE_OR_DIE"],

-			["Option1"] = {HIGH, "SetUserScreen", "high"},
-			["Option2"] = {LOW, "SetUserScreen", "low"},
+			["Option1"] = {HIGH, "UserScreen", "high"},
+			["Option2"] = {LOW, "UserScreen", "low"},
 		},
 		--PAGE 4
 		{
diff --git a/Interface/AddOns/SVUI/system/animate.lua b/Interface/AddOns/SVUI/system/animate.lua
index 76ff815..a85ea8e 100644
--- a/Interface/AddOns/SVUI/system/animate.lua
+++ b/Interface/AddOns/SVUI/system/animate.lua
@@ -371,7 +371,7 @@ end

 --[[ SLIDING ]]--

-function Animate:Slide(frame, xDirection, yDirection, bounce)
+function Animate:Slide(frame, xDirection, yDirection, bounce, extendedTime)
 	if(not frame or (frame and frame.anim)) then return end

 	frame.anim = frame:CreateAnimationGroup("Slide")
@@ -392,7 +392,7 @@ function Animate:Slide(frame, xDirection, yDirection, bounce)

 	if bounce then
 		frame.anim[3] = SetNewAnimation(frame.anim, "Translation")
-		frame.anim[3]:SetDuration(0.5)
+		frame.anim[3]:SetDuration(extendedTime or 0.5)
 		frame.anim[3]:SetOrder(3)

 		frame.anim[4] = SetNewAnimation(frame.anim, "Translation")