From 7a4135b65e1a583406a99bfaac2e6332b0a1c1a7 Mon Sep 17 00:00:00 2001 From: Darthpred Date: Thu, 20 Dec 2012 13:05:22 +0400 Subject: [PATCH] Elv changed altpower default position, tweaking install --- ElvUI_SLE/modules/install.lua | 3837 +++++++++++++++++++++-------------------- 1 file changed, 1919 insertions(+), 1918 deletions(-) diff --git a/ElvUI_SLE/modules/install.lua b/ElvUI_SLE/modules/install.lua index 0432f6a..53d9ecf 100644 --- a/ElvUI_SLE/modules/install.lua +++ b/ElvUI_SLE/modules/install.lua @@ -1,1919 +1,1920 @@ -local E, L, V, P, G, _ = unpack(ElvUI); --Inport: Engine, Locales, PrivateDB, ProfileDB, GlobalDB -local UF = E:GetModule('UnitFrames'); - -local CURRENT_PAGE = 0 -local MAX_PAGE - -local function MaxPages() - if IsAddOnLoaded("ElvUI_Hud") then - MAX_PAGE = 11 - else - MAX_PAGE = 10 - end -end - -local function SetupChat() - InstallStepComplete.message = L["Chat Set"] - InstallStepComplete:Show() - FCF_ResetChatWindows() - FCF_SetLocked(ChatFrame1, 1) - FCF_DockFrame(ChatFrame2) - FCF_SetLocked(ChatFrame2, 1) - - FCF_OpenNewWindow(LOOT) - FCF_UnDockFrame(ChatFrame3) - FCF_SetLocked(ChatFrame3, 1) - ChatFrame3:Show() - - for i = 1, NUM_CHAT_WINDOWS do - local frame = _G[format("ChatFrame%s", i)] - local chatFrameId = frame:GetID() - local chatName = FCF_GetChatWindowInfo(chatFrameId) - - -- move general bottom left - if i == 1 then - frame:ClearAllPoints() - frame:Point("BOTTOMLEFT", LeftChatToggleButton, "TOPLEFT", 1, 3) - elseif i == 3 then - frame:ClearAllPoints() - frame:Point("BOTTOMLEFT", RightChatDataPanel, "TOPLEFT", 1, 3) - end - - FCF_SavePositionAndDimensions(frame) - FCF_StopDragging(frame) - - -- set default Elvui font size - FCF_SetChatWindowFontSize(nil, frame, 12) - - -- rename windows general because moved to chat #3 - if i == 1 then - FCF_SetWindowName(frame, GENERAL) - elseif i == 2 then - FCF_SetWindowName(frame, GUILD_EVENT_LOG) - elseif i == 3 then - FCF_SetWindowName(frame, LOOT.." / "..TRADE) - end - end - - ChatFrame_RemoveAllMessageGroups(ChatFrame1) - ChatFrame_AddMessageGroup(ChatFrame1, "SAY") - ChatFrame_AddMessageGroup(ChatFrame1, "EMOTE") - ChatFrame_AddMessageGroup(ChatFrame1, "YELL") - ChatFrame_AddMessageGroup(ChatFrame1, "GUILD") - ChatFrame_AddMessageGroup(ChatFrame1, "OFFICER") - ChatFrame_AddMessageGroup(ChatFrame1, "GUILD_ACHIEVEMENT") - ChatFrame_AddMessageGroup(ChatFrame1, "WHISPER") - ChatFrame_AddMessageGroup(ChatFrame1, "MONSTER_SAY") - ChatFrame_AddMessageGroup(ChatFrame1, "MONSTER_EMOTE") - ChatFrame_AddMessageGroup(ChatFrame1, "MONSTER_YELL") - ChatFrame_AddMessageGroup(ChatFrame1, "MONSTER_BOSS_EMOTE") - ChatFrame_AddMessageGroup(ChatFrame1, "PARTY") - ChatFrame_AddMessageGroup(ChatFrame1, "PARTY_LEADER") - ChatFrame_AddMessageGroup(ChatFrame1, "RAID") - ChatFrame_AddMessageGroup(ChatFrame1, "RAID_LEADER") - ChatFrame_AddMessageGroup(ChatFrame1, "RAID_WARNING") - ChatFrame_AddMessageGroup(ChatFrame1, "BATTLEGROUND") - ChatFrame_AddMessageGroup(ChatFrame1, "BATTLEGROUND_LEADER") - ChatFrame_AddMessageGroup(ChatFrame1, "BG_HORDE") - ChatFrame_AddMessageGroup(ChatFrame1, "BG_ALLIANCE") - ChatFrame_AddMessageGroup(ChatFrame1, "BG_NEUTRAL") - ChatFrame_AddMessageGroup(ChatFrame1, "SYSTEM") - ChatFrame_AddMessageGroup(ChatFrame1, "ERRORS") - ChatFrame_AddMessageGroup(ChatFrame1, "AFK") - ChatFrame_AddMessageGroup(ChatFrame1, "DND") - ChatFrame_AddMessageGroup(ChatFrame1, "IGNORED") - ChatFrame_AddMessageGroup(ChatFrame1, "ACHIEVEMENT") - ChatFrame_AddMessageGroup(ChatFrame1, "BN_WHISPER") - ChatFrame_AddMessageGroup(ChatFrame1, "BN_CONVERSATION") - ChatFrame_AddMessageGroup(ChatFrame1, "BN_INLINE_TOAST_ALERT") - ChatFrame_AddMessageGroup(ChatFrame1, "INSTANCE_CHAT") - ChatFrame_AddMessageGroup(ChatFrame1, "INSTANCE_CHAT_LEADER") - - ChatFrame_RemoveAllMessageGroups(ChatFrame3) - ChatFrame_AddMessageGroup(ChatFrame3, "COMBAT_FACTION_CHANGE") - ChatFrame_AddMessageGroup(ChatFrame3, "SKILL") - ChatFrame_AddMessageGroup(ChatFrame3, "LOOT") - ChatFrame_AddMessageGroup(ChatFrame3, "MONEY") - ChatFrame_AddMessageGroup(ChatFrame3, "COMBAT_XP_GAIN") - ChatFrame_AddMessageGroup(ChatFrame3, "COMBAT_HONOR_GAIN") - ChatFrame_AddMessageGroup(ChatFrame3, "COMBAT_GUILD_XP_GAIN") - ChatFrame_AddChannel(ChatFrame1, GENERAL) - ChatFrame_RemoveChannel(ChatFrame1, L['Trade']) - ChatFrame_AddChannel(ChatFrame3, L['Trade']) - - - if E.myname == "Elvz" then - SetCVar("scriptErrors", 1) - end - - -- enable classcolor automatically on login and on each character without doing /configure each time. - ToggleChatColorNamesByClassGroup(true, "SAY") - ToggleChatColorNamesByClassGroup(true, "EMOTE") - ToggleChatColorNamesByClassGroup(true, "YELL") - ToggleChatColorNamesByClassGroup(true, "GUILD") - ToggleChatColorNamesByClassGroup(true, "OFFICER") - ToggleChatColorNamesByClassGroup(true, "GUILD_ACHIEVEMENT") - ToggleChatColorNamesByClassGroup(true, "ACHIEVEMENT") - ToggleChatColorNamesByClassGroup(true, "WHISPER") - ToggleChatColorNamesByClassGroup(true, "PARTY") - ToggleChatColorNamesByClassGroup(true, "PARTY_LEADER") - ToggleChatColorNamesByClassGroup(true, "RAID") - ToggleChatColorNamesByClassGroup(true, "RAID_LEADER") - ToggleChatColorNamesByClassGroup(true, "RAID_WARNING") - ToggleChatColorNamesByClassGroup(true, "BATTLEGROUND") - ToggleChatColorNamesByClassGroup(true, "BATTLEGROUND_LEADER") - ToggleChatColorNamesByClassGroup(true, "CHANNEL1") - ToggleChatColorNamesByClassGroup(true, "CHANNEL2") - ToggleChatColorNamesByClassGroup(true, "CHANNEL3") - ToggleChatColorNamesByClassGroup(true, "CHANNEL4") - ToggleChatColorNamesByClassGroup(true, "CHANNEL5") - ToggleChatColorNamesByClassGroup(true, "CHANNEL6") - ToggleChatColorNamesByClassGroup(true, "CHANNEL7") - ToggleChatColorNamesByClassGroup(true, "CHANNEL8") - ToggleChatColorNamesByClassGroup(true, "CHANNEL9") - ToggleChatColorNamesByClassGroup(true, "CHANNEL10") - ToggleChatColorNamesByClassGroup(true, "CHANNEL11") - ToggleChatColorNamesByClassGroup(true, "INSTANCE_CHAT") - ToggleChatColorNamesByClassGroup(true, "INSTANCE_CHAT_LEADER") - - --Adjust Chat Colors - --General - ChangeChatColor("CHANNEL1", 195/255, 230/255, 232/255) - --Trade - ChangeChatColor("CHANNEL2", 232/255, 158/255, 121/255) - --Local Defense - ChangeChatColor("CHANNEL3", 232/255, 228/255, 121/255) - - if E.Chat then - E.Chat:PositionChat(true) - if E.db['RightChatPanelFaded'] then - RightChatToggleButton:Click() - end - - if E.db['LeftChatPanelFaded'] then - LeftChatToggleButton:Click() - end - end -end - -local function SetupCVars() - SetCVar("mapQuestDifficulty", 1) - SetCVar("ShowClassColorInNameplate", 1) - SetCVar("screenshotQuality", 10) - SetCVar("chatMouseScroll", 1) - SetCVar("chatStyle", "classic") - SetCVar("WholeChatWindowClickable", 0) - SetCVar("ConversationMode", "inline") - SetCVar("showTutorials", 0) - SetCVar("UberTooltips", 1) - SetCVar("threatWarning", 3) - SetCVar('alwaysShowActionBars', 1) - SetCVar('lockActionBars', 1) - SetCVar('SpamFilter', 0) --Blocks mmo-champion.com, dumb... ElvUI one is more effeciant anyways. - InterfaceOptionsActionBarsPanelPickupActionKeyDropDown:SetValue('SHIFT') - InterfaceOptionsActionBarsPanelPickupActionKeyDropDown:RefreshValue() - - InstallStepComplete.message = L["CVars Set"] - InstallStepComplete:Show() -end - -function E:GetColor(r, b, g, a) - return { r = r, b = b, g = g, a = a } -end - -function E:SetupPixelPerfect(enabled, noMsg) - E.private.general.pixelPerfect = enabled; - - if (E.PixelMode ~= enabled) then - E:StaticPopup_Show('PIXELPERFECT_CHANGED') - end - - if not noMsg then - E.db.general.bottomPanel = enabled - E:GetModule('Layout'):BottomPanelVisibility() - end - - if noMsg then - if enabled then - if not E.db.movers then E.db.movers = {}; end - - E.db.movers["ElvUF_PetMover"] = "BOTTOMElvUIParentBOTTOM0104" - E.db.movers["ElvUF_TargetTargetMover"] = "BOTTOMElvUIParentBOTTOM064" - E.db.movers["ElvUF_PlayerMover"] = "BOTTOMElvUIParentBOTTOM-27865" - E.db.movers["ElvUF_TargetMover"] = "BOTTOMElvUIParentBOTTOM27864" - - E.db.actionbar.bar1.backdrop = false; - E.db.actionbar.bar3.backdrop = false; - E.db.actionbar.bar5.backdrop = false; - E.db.actionbar.bar1.buttonspacing = 2; - E.db.actionbar.bar2.buttonspacing = 2; - E.db.actionbar.bar3.buttonspacing = 2; - E.db.actionbar.bar4.buttonspacing = 2; - E.db.actionbar.bar5.buttonspacing = 2; - E.db.actionbar.barPet.buttonspacing = 2; - E.db.actionbar.stanceBar.buttonspacing = 2; - else - E.db.actionbar.bar1.backdrop = true; - E.db.actionbar.bar3.backdrop = true; - E.db.actionbar.bar5.backdrop = true; - E.db.actionbar.bar1.buttonspacing = 4; - E.db.actionbar.bar2.buttonspacing = 4; - E.db.actionbar.bar3.buttonspacing = 4; - E.db.actionbar.bar4.buttonspacing = 4; - E.db.actionbar.bar5.buttonspacing = 4; - E.db.actionbar.barPet.buttonspacing = 4; - E.db.actionbar.stanceBar.buttonspacing = 4; - end - end - - if InstallStepComplete and not noMsg then - InstallStepComplete.message = L["Pixel Perfect Set"] - InstallStepComplete:Show() - E:UpdateAll(true) - end - - - E.PixelMode = enabled -end - -function E:SetupTheme(theme, noDisplayMsg) - local classColor = RAID_CLASS_COLORS[E.myclass] - E.private.theme = theme - - - --Set colors - if theme == "classic" then - E.db.general.bordercolor = E:GetColor(.31, .31, .31) - E.db.general.backdropcolor = E:GetColor(.1, .1, .1) - E.db.general.backdropfadecolor = E:GetColor(.06, .06, .06, .8) - - E.db.unitframe.colors.healthclass = false - E.db.unitframe.colors.health = E:GetColor(.31, .31, .31) - E.db.unitframe.colors.auraBarBuff = E:GetColor(.31, .31, .31) - E.db.unitframe.colors.castColor = E:GetColor(.31, .31, .31) - - elseif theme == "class" then - E.db.general.bordercolor = E:GetColor(.31, .31, .31) - E.db.general.backdropcolor = E:GetColor(.1, .1, .1) - E.db.general.backdropfadecolor = E:GetColor(.06, .06, .06, .8) - E.db.unitframe.colors.auraBarBuff = E:GetColor(classColor.r, classColor.b, classColor.g) - E.db.unitframe.colors.healthclass = true - E.db.unitframe.colors.castColor = E:GetColor(classColor.r, classColor.b, classColor.g) - else - E.db.general.bordercolor = E:GetColor(.1, .1, .1) - E.db.general.backdropcolor = E:GetColor(.1, .1, .1) - E.db.general.backdropfadecolor = E:GetColor(.054, .054, .054, .8) - E.db.unitframe.colors.auraBarBuff = E:GetColor(.1, .1, .1) - E.db.unitframe.colors.healthclass = false - E.db.unitframe.colors.health = E:GetColor(.1, .1, .1) - E.db.unitframe.colors.castColor = E:GetColor(.1, .1, .1) - end - - --Value Color - if theme == "class" then - E.db.general.valuecolor = E:GetColor(classColor.r, classColor.b, classColor.g) - else - E.db.general.valuecolor = E:GetColor(.09, .819, .513) - end - - if not noDisplayMsg then - E:UpdateAll(true) - end - - if InstallStatus then - InstallStatus:SetStatusBarColor(unpack(E['media'].rgbvaluecolor)) - - if InstallStepComplete and not noDisplayMsg then - InstallStepComplete.message = L["Theme Set"] - InstallStepComplete:Show() - end - end -end - -function E:SetupResolution(noDataReset) - if not noDataReset then - E:ResetMovers('') - end - - if self == 'low' then - if not E.db.movers then E.db.movers = {}; end - if not noDataReset then - E.db.chat.panelWidth = 400 - E.db.chat.panelHeight = 180 - - E:CopyTable(E.db.actionbar, P.actionbar) - - E.db.actionbar.bar1.heightMult = 2; - E.db.actionbar.bar2.enabled = true; - E.db.actionbar.bar3.enabled = false; - E.db.actionbar.bar5.enabled = false; - end - - if not noDataReset then - E.db.auras.wrapAfter = 10; - end - E.db.general.reputation.width = 400 - E.db.general.experience.width = 400 - E.db.movers.ElvAB_2 = "CENTERElvUIParentBOTTOM056.18" - - if not noDataReset then - E:CopyTable(E.db.unitframe.units, P.unitframe.units) - - E.db.unitframe.fontSize = 10 - - E.db.unitframe.units.player.width = 200; - E.db.unitframe.units.player.castbar.width = 200; - E.db.unitframe.units.player.classbar.fill = 'fill'; - E.db.unitframe.units.player.health.text_format = "[healthcolor][health:current]" - - E.db.unitframe.units.target.width = 200; - E.db.unitframe.units.target.castbar.width = 200; - E.db.unitframe.units.target.health.text_format = '[healthcolor][health:current]' - - E.db.unitframe.units.pet.power.enable = false; - E.db.unitframe.units.pet.width = 200; - E.db.unitframe.units.pet.height = 26; - - E.db.unitframe.units.targettarget.debuffs.enable = false; - E.db.unitframe.units.targettarget.power.enable = false; - E.db.unitframe.units.targettarget.width = 200; - E.db.unitframe.units.targettarget.height = 26; - - E.db.unitframe.units.boss.width = 200; - E.db.unitframe.units.boss.castbar.width = 200; - E.db.unitframe.units.arena.width = 200; - E.db.unitframe.units.arena.castbar.width = 200; - end - - local isPixel = E.private.general.pixelPerfect - local xOffset = isPixel and 103 or 106; - local yOffset = isPixel and 125 or 135; - local yOffsetSmall = isPixel and 76 or 80; - - E.db.movers.ElvUF_PlayerMover = "BOTTOMElvUIParentBOTTOM"..-xOffset..""..yOffset - E.db.movers.ElvUF_TargetTargetMover = "BOTTOMElvUIParentBOTTOM"..xOffset..""..yOffsetSmall - E.db.movers.ElvUF_TargetMover = "BOTTOMElvUIParentBOTTOM"..xOffset..""..yOffset - E.db.movers.ElvUF_PetMover = "BOTTOMElvUIParentBOTTOM"..-xOffset..""..yOffsetSmall - E.db.movers.ElvUF_FocusMover = "BOTTOMElvUIParentBOTTOM310332" - - E.db.lowresolutionset = true; - elseif not noDataReset then - E.db.chat.panelWidth = P.chat.panelWidth - E.db.chat.panelHeight = P.chat.panelHeight - - E:CopyTable(E.db.actionbar, P.actionbar) - E:CopyTable(E.db.unitframe.units, P.unitframe.units) - E:SetupPixelPerfect(E.PixelMode, true) - E.db.auras.wrapAfter = P.auras.wrapAfter; - E.db.general.reputation.width = P.general.reputation.width - E.db.general.experience.width = P.general.experience.width - - E.db.lowresolutionset = nil; - end - - if not noDataReset and E.private.theme then - E:SetupTheme(E.private.theme, true) - end - - E:UpdateAll(true) - - if InstallStepComplete and not noDataReset then - InstallStepComplete.message = L["Resolution Style Set"] - InstallStepComplete:Show() - end -end - -function E:SetupLayout(layout, noDataReset) - --Unitframes - if not noDataReset then - E:CopyTable(E.db.unitframe.units, P.unitframe.units) - E:CopyTable(E.db.sle.combatico, P.sle.combatico) - E.db.sle.powtext = false - end - if layout == 'healer' then - if not IsAddOnLoaded('Clique') then - E:Print(L['Using the healer layout it is highly recommended you download the addon Clique to work side by side with ElvUI.']) - end - - if not noDataReset then - E.db.unitframe.units.party.health.frequentUpdates = true; - E.db.unitframe.units.raid25.health.frequentUpdates = true; - E.db.unitframe.units.raid40.health.frequentUpdates = true; - - E.db.unitframe.units.raid40.height = 36; - E.db.unitframe.units.raid40.health.text = true; - E.db.unitframe.units.raid40.name.position = 'TOP'; - E.db.unitframe.units.raid40.roleIcon.enable = true; - E.db.unitframe.units.boss.width = 200; - E.db.unitframe.units.boss.castbar.width = 200; - E.db.unitframe.units.arena.width = 200; - E.db.unitframe.units.arena.castbar.width = 200; - - E.db.unitframe.units.party.point = 'LEFT'; - E.db.unitframe.units.party.xOffset = 5; - E.db.unitframe.units.party.healPrediction = true; - E.db.unitframe.units.party.columnAnchorPoint = 'LEFT'; - E.db.unitframe.units.party.width = 80; - E.db.unitframe.units.party.height = 52; - E.db.unitframe.units.party.health.text_format = "[healthcolor][health:deficit]" - E.db.unitframe.units.party.health.position = 'BOTTOM'; - E.db.unitframe.units.party.health.orientation = 'VERTICAL'; - E.db.unitframe.units.party.name.position = 'TOP'; - E.db.unitframe.units.party.name.text_format = "[namecolor][name:medium]"; - E.db.unitframe.units.party.debuffs.anchorPoint = 'BOTTOMLEFT'; - E.db.unitframe.units.party.debuffs.initialAnchor = 'TOPLEFT'; - E.db.unitframe.units.party.debuffs.useFilter = 'Blacklist'; - E.db.unitframe.units.party.debuffs.sizeOverride = 0; - E.db.unitframe.units.party.petsGroup.enable = true; - E.db.unitframe.units.party.petsGroup.width = 80; - E.db.unitframe.units.party.petsGroup.initialAnchor = 'BOTTOM'; - E.db.unitframe.units.party.petsGroup.anchorPoint = 'TOP'; - E.db.unitframe.units.party.petsGroup.xOffset = 0; - E.db.unitframe.units.party.petsGroup.yOffset = 1; - E.db.unitframe.units.party.targetsGroup.enable = false; - E.db.unitframe.units.party.targetsGroup.width = 80; - E.db.unitframe.units.party.targetsGroup.initialAnchor = 'BOTTOM'; - E.db.unitframe.units.party.targetsGroup.anchorPoint = 'TOP'; - E.db.unitframe.units.party.targetsGroup.xOffset = 0; - E.db.unitframe.units.party.targetsGroup.yOffset = 1; - - E.db.unitframe.units.raid25.healPrediction = true; - E.db.unitframe.units.raid25.health.orientation = 'VERTICAL'; - - E.db.unitframe.units.raid40.healPrediction = true; - E.db.unitframe.units.raid40.health.orientation = 'VERTICAL'; - end - - if not E.db.movers then E.db.movers = {}; end - if E.db.lowresolutionset then - E.db.movers.ElvUF_PlayerMover = "BOTTOMElvUIParentBOTTOM-305242" - E.db.movers.ElvUF_TargetMover = "BOTTOMElvUIParentBOTTOM305242" - E.db.movers.ElvUF_Raid40Mover = "BOTTOMElvUIParentBOTTOM080" - E.db.movers.ElvUF_Raid25Mover = "BOTTOMElvUIParentBOTTOM080" - E.db.movers.ElvUF_Raid10Mover = "BOTTOMElvUIParentBOTTOM080" - E.db.movers.ElvUF_TargetTargetMover = "BOTTOMElvUIParentBOTTOM305187" - E.db.movers.ElvUF_PartyMover = "BOTTOMElvUIParentBOTTOM0104" - E.db.movers.ElvUF_PetMover = "BOTTOMElvUIParentBOTTOM-305187" - E.db.movers.ElvUF_FocusMover = "BOTTOMElvUIParentBOTTOM310432" - - else - E.db.movers.ElvUF_PlayerMover = "BOTTOMLEFTElvUIParentBOTTOMLEFT464242" - E.db.movers.ElvUF_TargetMover = "BOTTOMRIGHTElvUIParentBOTTOMRIGHT-464242" - E.db.movers.ElvUF_Raid40Mover = "BOTTOMElvUIParentBOTTOM050" - E.db.movers.ElvUF_Raid25Mover = "BOTTOMElvUIParentBOTTOM050" - E.db.movers.ElvUF_Raid10Mover = "BOTTOMElvUIParentBOTTOM050" - E.db.movers.ElvUF_TargetTargetMover = "BOTTOMRIGHTElvUIParentBOTTOMRIGHT-464151" - E.db.movers.ElvUF_PartyMover = "BOTTOMElvUIParentBOTTOM074" - E.db.movers.ElvUF_PetMover = "BOTTOMLEFTElvUIParentBOTTOMLEFT464151" - E.db.movers.ElvUF_FocusMover = "BOTTOMElvUIParentBOTTOM280332" - end - elseif E.db.lowresolutionset then - if not E.db.movers then E.db.movers = {}; end - E.db.movers.ElvUF_PlayerMover = "BOTTOMElvUIParentBOTTOM-106135" - E.db.movers.ElvUF_TargetMover = "BOTTOMElvUIParentBOTTOM106135" - E.db.movers.ElvUF_TargetTargetMover = "BOTTOMElvUIParentBOTTOM10680" - E.db.movers.ElvUF_PetMover = "BOTTOMElvUIParentBOTTOM-10680" - E.db.movers.ElvUF_FocusMover = "BOTTOMElvUIParentBOTTOM310332" - else - if not noDataReset then - E:ResetMovers('') - E:SetupPixelPerfect(E.PixelMode, true) - end - end - - if E.db.lowresolutionset and not noDataReset then - E.db.unitframe.units.player.width = 200; - E.db.unitframe.units.player.castbar.width = 200; - E.db.unitframe.units.player.classbar.fill = 'fill'; - - E.db.unitframe.units.target.width = 200; - E.db.unitframe.units.target.castbar.width = 200; - - E.db.unitframe.units.pet.power.enable = false; - E.db.unitframe.units.pet.width = 200; - E.db.unitframe.units.pet.height = 26; - - E.db.unitframe.units.targettarget.debuffs.enable = false; - E.db.unitframe.units.targettarget.power.enable = false; - E.db.unitframe.units.targettarget.width = 200; - E.db.unitframe.units.targettarget.height = 26; - - E.db.unitframe.units.boss.width = 200; - E.db.unitframe.units.boss.castbar.width = 200; - E.db.unitframe.units.arena.width = 200; - E.db.unitframe.units.arena.castbar.width = 200; - end - - if not E.db.lowresolutionset and (layout == 'dpsCaster' or (layout == 'dpsMelee' and E.myclass == 'HUNTER')) then - if not E.db.movers then E.db.movers = {}; end - E.db.movers.ElvUF_PlayerCastbarMover = "BOTTOMElvUIParentBOTTOM0180" - --[[elseif not E.db.lowresolutionset and layout == 'tank' then --Not sure if i want to keep this. - if not E.db.movers then E.db.movers = {}; end - E.db.movers.ElvUF_TargetCastbarMover = "BOTTOMElvUIParentBOTTOM0180"]] - end - - --Datatexts - if not noDataReset then - E:CopyTable(E.db.datatexts.panels, P.datatexts.panels) - E:CopyTable(E.db.sle.datatext, P.sle.datatext) - if layout == 'tank' then - E.db.datatexts.panels.LeftChatDataPanel.left = 'Armor'; - E.db.datatexts.panels.LeftChatDataPanel.right = 'Avoidance'; - elseif layout == 'healer' or layout == 'dpsCaster' then - E.db.datatexts.panels.LeftChatDataPanel.left = 'Spell/Heal Power'; - E.db.datatexts.panels.LeftChatDataPanel.right = 'Haste'; - else - E.db.datatexts.panels.LeftChatDataPanel.left = 'Attack Power'; - E.db.datatexts.panels.LeftChatDataPanel.right = 'Crit Chance'; - end - - if InstallStepComplete then - InstallStepComplete.message = L["Layout Set"] - InstallStepComplete:Show() - end - end - - E.db.layoutSet = layout - - if not noDataReset and E.private.theme then - E:SetupTheme(E.private.theme, true) - end - - if not noDataReset then - E:CopyTable(E.db.sle.marks, P.sle.marks) - E:CopyTable(E.db.sle.backgrounds, P.sle.backgrounds) - E:CopyTable(E.db.sle.uibuttons, P.sle.uibuttons) - end - - E:UpdateAll(true) - local DT = E:GetModule('DataTexts') - DT:LoadDataTexts() -end - - -local function SetupAuras(style) - E:CopyTable(E.db.unitframe.units.player.buffs, P.unitframe.units.player.buffs) - E:CopyTable(E.db.unitframe.units.player.debuffs, P.unitframe.units.player.debuffs) - E:CopyTable(E.db.unitframe.units.player.aurabar, P.unitframe.units.player.aurabar) - - E:CopyTable(E.db.unitframe.units.target.buffs, P.unitframe.units.target.buffs) - E:CopyTable(E.db.unitframe.units.target.debuffs, P.unitframe.units.target.debuffs) - E:CopyTable(E.db.unitframe.units.target.aurabar, P.unitframe.units.target.aurabar) - E.db.unitframe.units.target.smartAuraDisplay = P.unitframe.units.target.smartAuraDisplay - - E:CopyTable(E.db.unitframe.units.focus.buffs, P.unitframe.units.focus.buffs) - E:CopyTable(E.db.unitframe.units.focus.debuffs, P.unitframe.units.focus.debuffs) - E:CopyTable(E.db.unitframe.units.focus.aurabar, P.unitframe.units.focus.aurabar) - E.db.unitframe.units.focus.smartAuraDisplay = P.unitframe.units.focus.smartAuraDisplay - - if not style then - --PLAYER - E.db.unitframe.units.player.buffs.enable = true; - E.db.unitframe.units.player.buffs.attachTo = 'FRAME'; - E.db.unitframe.units.player.buffs.noDuration = false; - - E.db.unitframe.units.player.debuffs.attachTo = 'BUFFS'; - - E.db.unitframe.units.player.aurabar.enable = false; - - --TARGET - E.db.unitframe.units.target.smartAuraDisplay = 'DISABLED'; - E.db.unitframe.units.target.debuffs.enable = true; - E.db.unitframe.units.target.aurabar.enable = false; - elseif style == 'integrated' then - --seriosly is this fucking hard?? - E.db.unitframe.units.target.smartAuraDisplay = 'SHOW_DEBUFFS_ON_FRIENDLIES'; - E.db.unitframe.units.target.buffs.playerOnly = {friendly = true, enemy = false}; - E.db.unitframe.units.target.debuffs.enable = false; - E.db.unitframe.units.target.aurabar.attachTo = 'BUFFS'; - end - - E:GetModule('UnitFrames'):Update_AllFrames() - if InstallStepComplete then - InstallStepComplete.message = L["Auras Set"] - InstallStepComplete:Show() - end -end - - -function E:DarthSetup() --The function to switch from classic ElvUI settings to Darth's - InstallStepComplete.message = L["Darth's Defaults Set"] - InstallStepComplete:Show() - if not E.db.movers then E.db.movers = {}; end - - layout = E.db.layoutSet --To know if some sort of layout was choosed before - - --General options-- - E.db.general.stickyFrames = false - E.db.general.autoRepair = "PLAYER" - E.db.general.vendorGrays = true - E.db.general.fontsize = 10 - E.db.general.minimap.locationText = 'SHOW' - E.db.general.experience.textFormat = 'CURPERC' - E.db.general.experience.textSize = 10 - E.db.general.experience.height = 12 - E.db.general.reputation.textFormat = 'CURMAX' - E.db.general.reputation.textSize = 10 - E.db.general.reputation.height = 12 - E.db.general.threat.enable = false - E.db.general.totems.spacing = 2 - E.db.general.totems.growthDirection = "HORIZONTAL" - E.db.general.totems.size = 24 - E.db.general.bottomPanel = false - - --Bags-- - E.db.bags.bagSize = 22 - E.db.bags.bankSize = 22 - E.db.bags.sortInverted = false - E.db.bags.alignToChat = false - E.db.bags.bagWidth = 633 - E.db.bags.bankWidth = 633 - E.db.bags.yOffset = 221 - E.db.bags.currencyFormat = "ICON" - E.db.bags.growthDirection = "HORIZONTAL" - - --NamePlate-- - E.db.nameplate.healthtext = 'CURRENT_PERCENT' - E.db.nameplate.lowHealthWarning = 'NONE' - E.db.nameplate.lowHealthWarningThreshold = .20 - E.db.nameplate.width = 112 - E.db.nameplate.fontSize = 8 - E.db.nameplate.fontOutline = "OUTLINE" - E.db.nameplate.font = "ElvUI Font" - E.db.nameplate.height = 8 - E.db.nameplate.auraFont = "ElvUI Font" - E.db.nameplate.auraFontOutline = "OUTLINE" - - --Auras-- - E.db.auras.font = "ElvUI Font" - E.db.auras.fontOutline = "OUTLINE" - E.db.auras.wrapAfter = 18 - E.db.sle.castername = true - - --Chat-- - E.db.chat.editboxhistory = 10 - E.db.chat.emotionIcons = false - E.db.chat.whisperSound = 'None' - E.db.chat.panelHeight = 227 - E.db.chat.panelTabBackdrop = false - if E.db.lowresolutionset then - E.db.chat.panelWidth = 400 - else - E.db.chat.panelWidth = 446 - end - E.db.chat.timeStampFormat = "%H:%M:%S " - - --Datatexts-- - do - E.db.datatexts.font = "ElvUI Pixel" - E.db.datatexts.fontSize = 11 - E.db.datatexts.time24 = true - E.db.sle.datatext.top.enabled = true - E.db.sle.datatext.bottom.enabled = true - if E.db.lowresolutionset then - E.db.sle.datatext.dp1.enabled = false - E.db.sle.datatext.dp2.enabled = false - E.db.sle.datatext.dp3.enabled = false - E.db.sle.datatext.dp4.enabled = false - E.db.sle.datatext.dp5.enabled = false - E.db.sle.datatext.dp6.enabled = false - E.db.sle.datatext.chatleft.width = 384 - E.db.sle.datatext.chatright.width = 384 - E.db.sle.datatext.bottom.width = E.screenwidth/3 + 52 - else - E.db.sle.datatext.dp1.enabled = true - E.db.sle.datatext.dp1.width = E.screenwidth/5 + 1 - E.db.sle.datatext.dp2.enabled = true - E.db.sle.datatext.dp3.enabled = true - E.db.sle.datatext.dp4.enabled = true - E.db.sle.datatext.dp4.width = E.screenwidth/5 + 1 - E.db.sle.datatext.dp5.enabled = true - E.db.sle.datatext.dp5.width = E.screenwidth/4 - 60 - E.db.sle.datatext.dp6.enabled = true - E.db.sle.datatext.dp6.width = E.screenwidth/4 - 60 - E.db.sle.datatext.chatleft.width = 430 - E.db.sle.datatext.chatright.width = 430 - E.db.sle.datatext.bottom.width = E.screenwidth/10 - E.db.sle.datatext.top.width = E.screenwidth/5 + 2 - end - - if E.db.lowresolutionset then - E.db.datatexts.panels.LeftChatDataPanel.left = 'Bags'; - E.db.datatexts.panels.LeftChatDataPanel.middle = 'Gold'; - E.db.datatexts.panels.LeftChatDataPanel.right = 'Durability'; - else - E.db.datatexts.panels.LeftChatDataPanel.right = 'Friends'; - E.db.datatexts.panels.LeftChatDataPanel.left = 'Call to Arms'; - E.db.datatexts.panels.LeftChatDataPanel.middle = 'Durability'; - end - E.db.datatexts.panels.LeftMiniPanel = 'Time'; - E.db.datatexts.panels.RightMiniPanel = 'Guild'; - - if layout == 'tank' then - E.db.datatexts.panels.DP_6.left = 'Avoidance'; - E.db.datatexts.panels.DP_6.middle = 'Vengeance'; - E.db.datatexts.panels.DP_6.right = 'Expertise'; - if E.db.lowresolutionset then - E.db.datatexts.panels.RightChatDataPanel.left = 'Avoidance'; - E.db.datatexts.panels.RightChatDataPanel.middle = 'Vengeance'; - E.db.datatexts.panels.RightChatDataPanel.right = 'Expertise'; - else - E.db.datatexts.panels.RightChatDataPanel.left = 'Hit Rating'; - E.db.datatexts.panels.RightChatDataPanel.middle = 'Mastery'; - E.db.datatexts.panels.RightChatDataPanel.right = 'Spec Switch'; - end - E.db.datatexts.panels.DP_5.right = 'Armor'; - elseif layout == 'healer' then - E.db.datatexts.panels.DP_6.left = 'Spell/Heal Power'; - E.db.datatexts.panels.DP_6.middle = 'Haste'; - E.db.datatexts.panels.DP_6.right = 'Crit Chance'; - if E.db.lowresolutionset then - E.db.datatexts.panels.RightChatDataPanel.left = 'Spell/Heal Power'; - E.db.datatexts.panels.RightChatDataPanel.middle = 'Crit Chance'; - E.db.datatexts.panels.RightChatDataPanel.right = 'MP5'; - else - E.db.datatexts.panels.RightChatDataPanel.left = 'MP5'; - E.db.datatexts.panels.RightChatDataPanel.middle = 'Mastery'; - E.db.datatexts.panels.RightChatDataPanel.right = 'Spec Switch'; - end - E.db.datatexts.panels.DP_5.right = 'Armor'; - elseif layout == 'dpsCaster' then - E.db.datatexts.panels.DP_6.left = 'Spell/Heal Power'; - E.db.datatexts.panels.DP_6.middle = 'Haste'; - E.db.datatexts.panels.DP_6.right = 'Crit Chance'; - if E.db.lowresolutionset then - E.db.datatexts.panels.RightChatDataPanel.left = 'Spell/Heal Power'; - E.db.datatexts.panels.RightChatDataPanel.middle = 'Haste'; - E.db.datatexts.panels.RightChatDataPanel.right = 'Crit Chance'; - else - E.db.datatexts.panels.RightChatDataPanel.left = 'Hit Rating'; - E.db.datatexts.panels.RightChatDataPanel.middle = 'Mastery'; - E.db.datatexts.panels.RightChatDataPanel.right = 'Spec Switch'; - end - E.db.datatexts.panels.DP_5.right = 'Armor'; - else - E.db.datatexts.panels.DP_6.left = 'Attack Power'; - E.db.datatexts.panels.DP_6.middle = 'Haste'; - E.db.datatexts.panels.DP_6.right = 'Crit Chance'; - if E.db.lowresolutionset then - E.db.datatexts.panels.RightChatDataPanel.left = 'Attack Power'; - E.db.datatexts.panels.RightChatDataPanel.middle = 'Haste'; - E.db.datatexts.panels.RightChatDataPanel.right = 'Crit Chance'; - else - E.db.datatexts.panels.RightChatDataPanel.left = 'Hit Rating'; - E.db.datatexts.panels.RightChatDataPanel.middle = 'Mastery'; - E.db.datatexts.panels.RightChatDataPanel.right = 'Spec Switch'; - end - E.db.datatexts.panels.DP_5.right = 'Expertise'; - end - end - - --Unitframes-- - do - E.db.unitframe.smoothbars = false - E.db.unitframe.font = "ElvUI Font" - E.db.unitframe.fontsize = 9 - E.db.unitframe.fontOutline = 'OUTLINE' - E.db.unitframe.colors.castColor = { - ["b"] = 0.3098039215686275, - ["g"] = 0.792156862745098, - ["r"] = 0.8274509803921568, - } - UF:Update_AllFrames() - if layout == "healer" then - E.db.unitframe.debuffHighlighting = true - else - E.db.unitframe.debuffHighlighting = false - end - E.db.unitframe.smartRaidFilter = false - E.db.unitframe.colors.healthclass = true - E.db.unitframe.colors.colorhealthbyvalue = false - --Setting player frame - E.db.unitframe.units.player.width = 200 - if layout == "healer" then - E.db.unitframe.units.player.lowmana = 30; - else - E.db.unitframe.units.player.lowmana = 0; - end - E.db.unitframe.units.player.health.position = 'BOTTOMRIGHT'; - E.db.unitframe.units.player.health.text_format = "[healthcolor][health:current-percent:sl]" - E.db.unitframe.units.player.power.text_format = "[powercolor][power:current:sl]"; - E.db.unitframe.units.player.fixTo = "power" - E.db.unitframe.units.player.name.text_format = "[name:medium] [level]"; - E.db.unitframe.units.player.name.position = 'TOPLEFT'; - E.db.unitframe.units.player.pvp.text_format = "||cFFB04F4F[pvptimer]||r" - E.db.unitframe.units.player.pvp.position = "BOTTOMLEFT" - E.db.unitframe.units.player.portrait.enable = true - E.db.unitframe.units.player.portrait.camDistanceScale = 1.5; - E.db.unitframe.units.player.debuffs.enable = false; - E.db.unitframe.units.player.castbar.format = 'CURRENTMAX'; - E.db.unitframe.units.player.castbar.width = 238 - E.db.unitframe.units.player.classbar.fill = 'fill' - E.db.unitframe.units.player.classbar.height = 8 - E.db.unitframe.units.player.aurabar.enable = false - --Setting target frame - E.db.unitframe.units.target.width = 200 - E.db.unitframe.units.target.smartAuraDisplay = "DISABLED" - E.db.unitframe.units.target.hideonnpc = false; - E.db.unitframe.units.target.health.position = 'BOTTOMRIGHT'; - E.db.unitframe.units.target.power.position = 'RIGHT'; - E.db.unitframe.units.target.power.hideonnpc = false; - E.db.unitframe.units.target.power.text_format = "[powercolor][power:current:sl]" - E.db.unitframe.units.target.fixTo = "power" - E.db.unitframe.units.target.name.text_format = "[name:medium] [level] [shortclassification]"; - E.db.unitframe.units.target.name.position = 'TOPLEFT'; - E.db.unitframe.units.target.portrait.enable = true - E.db.unitframe.units.target.portrait.camDistanceScale = 1.5; - E.db.unitframe.units.target.buffs.perrow = 9; - E.db.unitframe.units.target.buffs.numrows = 2; - E.db.unitframe.units.target.buffs.anchorPoint = 'TOPLEFT'; - E.db.unitframe.units.target.buffs.clickThrough = false - E.db.unitframe.units.target.buffs.playerOnly.friendly = false - E.db.unitframe.units.target.buffs.playerOnly.enemy = false - E.db.unitframe.units.target.buffs.useBlacklist.friendly = false - E.db.unitframe.units.target.buffs.useBlacklist.enemy = false - E.db.unitframe.units.target.buffs.useWhitelist.friendly = false - E.db.unitframe.units.target.buffs.useWhitelist.enemy = false - E.db.unitframe.units.target.buffs.noDuration.friendly = false - E.db.unitframe.units.target.buffs.noDuration.enemy = false - E.db.unitframe.units.target.buffs.onlyDispellable.friendly = false - E.db.unitframe.units.target.buffs.onlyDispellable.enemy = false - E.db.unitframe.units.target.debuffs.perrow = 9; - E.db.unitframe.units.target.debuffs.playerOnly.friendly = false - E.db.unitframe.units.target.debuffs.playerOnly.enemy = false - E.db.unitframe.units.target.debuffs.useBlacklist.friendly = false - E.db.unitframe.units.target.debuffs.useBlacklist.enemy = false - E.db.unitframe.units.target.debuffs.useWhitelist.friendly = false - E.db.unitframe.units.target.debuffs.useWhitelist.enemy = false - E.db.unitframe.units.target.debuffs.noDuration.friendly = false - E.db.unitframe.units.target.debuffs.noDuration.enemy = false - E.db.unitframe.units.target.debuffs.onlyDispellable.friendly = false - E.db.unitframe.units.target.debuffs.onlyDispellable.enemy = false - E.db.unitframe.units.target.debuffs.enable = true - E.db.unitframe.units.target.debuffs.clickThrough = false - E.db.unitframe.units.target.castbar.format = 'CURRENTMAX'; - if layout == "healer" then - E.db.unitframe.units.target.castbar.width = 238 - else - E.db.unitframe.units.target.castbar.width = 200 - end - E.db.unitframe.units.target.aurabar.enable = false - --Target of Target - E.db.unitframe.units.targettarget.height = 26 - if layout == "healer" then - E.db.unitframe.units.targettarget.width = 115 - else - E.db.unitframe.units.targettarget.width = 120 - end - E.db.unitframe.units.targettarget.name.text_format = "[name:medium]" - E.db.unitframe.units.targettarget.debuffs.enable = false - --Focus - E.db.unitframe.units.focus.height = 42 - E.db.unitframe.units.focus.width = 179 - E.db.unitframe.units.focus.health.position = 'BOTTOMRIGHT' - E.db.unitframe.units.focus.health.text_format = "[healthcolor][health:current-percent:sl]" - E.db.unitframe.units.focus.power.text_format = "[powercolor][power:current:sl]" - E.db.unitframe.units.focus.fixTo = "power" - E.db.unitframe.units.focus.power.position = "RIGHT" - E.db.unitframe.units.focus.name.text_format = "[name:medium]" - E.db.unitframe.units.focus.name.position = 'TOPLEFT' - E.db.unitframe.units.focus.debuffs.perrow = 8 - E.db.unitframe.units.focus.debuffs.anchorPoint = "TOPLEFT" - E.db.unitframe.units.focus.castbar.format = 'CURRENTMAX' - E.db.unitframe.units.focus.castbar.width = 179 - --Focus Target - E.db.unitframe.units.focustarget.name.text_format = "[name:medium]" - E.db.unitframe.units.focustarget.enable = true - E.db.unitframe.units.focustarget.height = 34 - E.db.unitframe.units.focustarget.width = 179 - --Pet - E.db.unitframe.units.pet.name.text_format = "[name:medium]" - if layout == "healer" then - E.db.unitframe.units.pet.width = 115 - else - E.db.unitframe.units.pet.width = 128 - end - --Pet Target - E.db.unitframe.units.pettarget.name.text_format = "[name:medium]" - E.db.unitframe.units.pettarget.enable = true - if layout == "healer" then - E.db.unitframe.units.pettarget.width = 115 - else - E.db.unitframe.units.pettarget.width = 119 - end - --Party - if layout == "healer" then - E.db.unitframe.units.party.point = "LEFT" - E.db.unitframe.units.party.xOffset = 5 - E.db.unitframe.units.party.debuffs.perrow = 3 - E.db.unitframe.units.party.debuffs.anchorPoint = "BOTTOMLEFT" - E.db.unitframe.units.party.debuffs.useFilter = "Blacklist" - E.db.unitframe.units.party.debuffs.initialAnchor = "TOPLEFT" - E.db.unitframe.units.party.roleIcon.position = "RIGHT" - E.db.unitframe.units.party.width = 80 - E.db.unitframe.units.party.height = 52 - E.db.unitframe.units.party.healPrediction = true - E.db.unitframe.units.party.health.text_format = "[healthcolor][health:deficit]" - E.db.unitframe.units.party.health.position = "CENTER" - E.db.unitframe.units.party.health.frequentUpdates = true - E.db.unitframe.units.party.health.orientation = "VERTICAL" - else - E.db.unitframe.units.party.debuffs.perrow = 4 - E.db.unitframe.units.party.roleIcon.position = "TOPRIGHT" - E.db.unitframe.units.party.health.position = "BOTTOMLEFT" - end - E.db.unitframe.units.party.xOffset = 1 - E.db.unitframe.units.party.yOffset = -1 - E.db.unitframe.units.party.columnSpacing = 1 - E.db.unitframe.units.party.debuffs.sizeOverride = 26 - E.db.unitframe.units.party.buffIndicator.colorIcons = false - E.db.unitframe.units.party.power.height = 8 - E.db.unitframe.units.party.power.text_format = "" - E.db.unitframe.units.party.name.position = "TOP" - E.db.unitframe.units.party.name.text_format = "[name:medium] [difficultycolor][smartlevel]" - --Raid 10 - if layout == "healer" then - E.db.unitframe.units.raid10.health.frequentUpdates = true - E.db.unitframe.units.raid10.health.text_format = "[healthcolor][health:deficit]" - E.db.unitframe.units.raid10.health.orientation = "VERTICAL" - E.db.unitframe.units.raid10.health.position = "CENTER" - else - E.db.unitframe.units.raid10.health.text_format = "[healthcolor][health:current]" - E.db.unitframe.units.raid10.columnAnchorPoint = "LEFT" - E.db.unitframe.units.raid10.point = "TOP" - end - E.db.unitframe.units.raid10.xOffset = 1 - E.db.unitframe.units.raid10.yOffset = -1 - E.db.unitframe.units.raid10.columnSpacing = 1 - E.db.unitframe.units.raid10.name.text_format = "[name:medium]" - E.db.unitframe.units.raid10.buffIndicator.colorIcons = false - E.db.unitframe.units.raid10.rdebuffs.size = 22 - E.db.unitframe.units.raid10.power.height = 8 - E.db.unitframe.units.raid10.power.text_format = "" - E.db.unitframe.units.raid10.health.position = "BOTTOMLEFT" - --Raid 25 - if layout == "healer" then - E.db.unitframe.units.raid25.health.text_format = "[healthcolor][health:deficit]" - E.db.unitframe.units.raid25.health.frequentUpdates = true - E.db.unitframe.units.raid25.health.orientation = "VERTICAL" - E.db.unitframe.units.raid25.health.position = "CENTER" - E.db.unitframe.units.raid25.height = 36 - else - E.db.unitframe.units.raid25.point = "TOP" - E.db.unitframe.units.raid25.columnAnchorPoint = "LEFT" - E.db.unitframe.units.raid25.health.text_format = "" - end - E.db.unitframe.units.raid25.xOffset = 1 - E.db.unitframe.units.raid25.yOffset = -1 - E.db.unitframe.units.raid25.columnSpacing = 1 - E.db.unitframe.units.raid25.buffIndicator.colorIcons = false - E.db.unitframe.units.raid25.name.text_format = "[name:medium]" - E.db.unitframe.units.raid25.rdebuffs.size = 22 - E.db.unitframe.units.raid25.power.height = 8 - E.db.unitframe.units.raid25.power.text_format = "" - --Raid 40 - if layout == "healer" then - E.db.unitframe.units.raid40.health.frequentUpdates = true - E.db.unitframe.units.raid40.health.text_format = "" - E.db.unitframe.units.raid40.health.orientation = "VERTICAL" - else - E.db.unitframe.units.raid40.health.text_format = "" - end - E.db.unitframe.units.raid40.height = 26 - E.db.unitframe.units.raid40.xOffset = 1 - E.db.unitframe.units.raid40.yOffset = -1 - E.db.unitframe.units.raid40.columnSpacing = 1 - E.db.unitframe.units.raid40.name.text_format = "[name:short]" - E.db.unitframe.units.raid40.buffIndicator.colorIcons = false - - --Tank - if layout == "healer" then - E.db.unitframe.units.tank.enable = true - E.db.unitframe.units.tank.targetsGroup.enable = false - E.db.unitframe.units.tank.height = 24 - else - E.db.unitframe.units.tank.enable = false - end - --Assist - E.db.unitframe.units.assist.enable = false - - --Arena - E.db.unitframe.units.arena.width = 200 - E.db.unitframe.units.arena.height = 40 - E.db.unitframe.units.arena.growthDirection = 'DOWN' - E.db.unitframe.units.arena.health.position = 'BOTTOMRIGHT' - E.db.unitframe.units.arena.health.text_format = "[healthcolor][health:current-percent:sl]" - E.db.unitframe.units.arena.power.text_format = "[powercolor][power:current:sl]" - E.db.unitframe.units.arena.fixTo = "power" - E.db.unitframe.units.arena.name.text_format = "[name:long]" - E.db.unitframe.units.arena.name.position = 'TOPLEFT' - E.db.unitframe.units.arena.buffs.enable = false - E.db.unitframe.units.arena.debuffs.enable = false - E.db.unitframe.units.arena.castbar.format = 'CURRENTMAX' - E.db.unitframe.units.arena.castbar.height = 15 - E.db.unitframe.units.arena.castbar.width = 200 - E.db.unitframe.units.arena.castbar.color = { - ["r"] = 0.8274509803921568, - ["g"] = 0.792156862745098, - ["b"] = 0.3098039215686275, - } - --Boss - E.db.unitframe.units.boss.width = 200 - E.db.unitframe.units.boss.height = 40 - E.db.unitframe.units.boss.growthDirection = 'DOWN' - E.db.unitframe.units.boss.health.position = 'BOTTOMRIGHT' - E.db.unitframe.units.boss.health.text_format = "[healthcolor][health:current-percent]" - E.db.unitframe.units.boss.power.height = 10 - E.db.unitframe.units.boss.power.text_format = "[powercolor][power:current:sl]" - E.db.unitframe.units.boss.fixTo = "power" - E.db.unitframe.units.boss.name.text_format = "[name:long]" - E.db.unitframe.units.boss.name.position = 'TOPLEFT' - E.db.unitframe.units.boss.buffs.enable = false - E.db.unitframe.units.boss.debuffs.enable = false - E.db.unitframe.units.boss.castbar.format = 'CURRENTMAX' - E.db.unitframe.units.boss.castbar.height = 15 - E.db.unitframe.units.boss.castbar.width = 200 - E.db.unitframe.units.boss.castbar.color = { - ["r"] = 0.8274509803921568, - ["g"] = 0.792156862745098, - ["b"] = 0.3098039215686275, - } - --Power text - E.db.sle.powtext = true - - end - - --Actionbars - do - E.db.actionbar.hotkeytext = false - E.db.actionbar.keyDown = false - E.db.actionbar.bar1.point = "TOPLEFT" - E.db.actionbar.bar1.buttonsPerRow = 3 - E.db.actionbar.bar1.buttonsize = 26 - E.db.actionbar.bar1.backdrop = true - E.db.actionbar.bar2.enabled = true - E.db.actionbar.bar2.point = "TOPLEFT" - E.db.actionbar.bar2.backdrop = true - E.db.actionbar.bar2.buttonsPerRow = 3 - E.db.actionbar.bar2.buttonsize = 26 - E.db.actionbar.bar2.visibility = "[petbattle] hide; show" - E.db.actionbar.bar3.point = "TOPLEFT" - E.db.actionbar.bar3.buttons = 12 - E.db.actionbar.bar3.buttonsPerRow = 3 - E.db.actionbar.bar3.visibility = "[petbattle] hide; show" - E.db.actionbar.bar3.buttonsize = 26 - E.db.actionbar.bar3.backdrop = true - E.db.actionbar.bar4.enabled = false - --E.db.actionbar.bar5.enabled = true - E.db.actionbar.bar5.buttons = 12 - E.db.actionbar.bar5.buttonspacing = 2 - E.db.actionbar.bar5.mouseover = true - E.db.actionbar.bar5.buttonsize = 24 - E.db.actionbar.bar5.backdrop = true - E.db.actionbar.microbar.enabled = true - E.db.actionbar.microbar.buttonsPerRow = 2 - E.db.actionbar.microbar.alpha = 0.2 - E.db.actionbar.stanceBar.buttonspacing = 2 - E.db.actionbar.stanceBar.backdrop = true - E.db.actionbar.stanceBar.buttonsPerRow = 1 - E.db.actionbar.stanceBar.buttonsize = 22 - E.db.actionbar.barPet.point = "TOPLEFT" - E.db.actionbar.barPet.buttonspacing = 1 - E.db.actionbar.barPet.backdrop = false - E.db.actionbar.barPet.buttonsPerRow = 5 - E.db.actionbar.barPet.buttonsize = 20 - end - - --Raid marks-- - E.db.sle.marks.growth = "LEFT" - - --Background Frames-- - E.db.sle.backgrounds.right.enabled = true - E.db.sle.backgrounds.right.pethide = false - E.db.sle.backgrounds.right.xoffset = 70 - E.db.sle.backgrounds.right.yoffset = -2 - E.db.sle.backgrounds.left.enabled = true - E.db.sle.backgrounds.left.pethide = false - E.db.sle.backgrounds.left.xoffset = -70 - E.db.sle.backgrounds.left.yoffset = -2 - - --Exp/Rep Bars-- - E.db.sle.exprep.explong = true - E.db.sle.exprep.replong = true - - --Combat icon-- - E.db.sle.combatico.pos = 'TOPRIGHT' - - --Loot History-- - E.db.sle.lootwin = true - E.db.sle.lootalpha = 0.5 - - --LFR-- - E.db.datatexts.lfrshow = true - - --Errors-- - E.db.sle.errors = true - - --UI Buttons-- - E.db.sle.uibuttons.enable = true - - --Moving stuff-- - do - if layout == "healer" then - E.db.movers.ElvUF_PlayerMover = "BOTTOMElvUIParentBOTTOM-313245" - E.db.movers.ElvUF_PlayerCastbarMover = "BOTTOMElvUIParentBOTTOM0177" - E.db.movers.ElvUF_TargetMover = "BOTTOMElvUIParentBOTTOM313245" - E.db.movers.ElvUF_TargetCastbarMover = "BOTTOMElvUIParentBOTTOM0196" - E.db.movers.ElvUF_TargetTargetMover = "BOTTOMElvUIParentBOTTOM271220" - E.db.movers.ElvUF_PetMover = "BOTTOMElvUIParentBOTTOM-270210" - E.db.movers.ElvUF_PetTargetMover = "BOTTOMElvUIParentBOTTOM-270185" - E.db.movers.PetAB = "BOTTOMElvUIParentBOTTOM-275143" - E.db.movers.TotemBarMover = "BOTTOMLEFTElvUIParentBOTTOMLEFT547298" - E.db.movers.TempEnchantMover = "BOTTOMElvUIParentBOTTOM-243309" - E.db.movers.ElvUF_PartyMover = "BOTTOMElvUIParentBOTTOM0251" - E.db.movers.ElvUF_Raid10Mover = "BOTTOMElvUIParentBOTTOM0215" - E.db.movers.ElvUF_Raid25Mover = "BOTTOMElvUIParentBOTTOM0215" - E.db.movers.ElvUF_Raid40Mover = "BOTTOMElvUIParentBOTTOM0215" - E.db.movers.ElvUF_TankMover = "BOTTOMLEFTElvUIParentBOTTOMLEFT428245" - E.db.movers.BossButton = "BOTTOMLEFTElvUIParentBOTTOMLEFT326268" - else - E.db.movers.ElvUF_PlayerMover = "BOTTOMElvUIParentBOTTOM-228192" - E.db.movers.ElvUF_PlayerCastbarMover = "BOTTOMElvUIParentBOTTOM0194" - E.db.movers.ElvUF_TargetMover = "BOTTOMElvUIParentBOTTOM228192" - E.db.movers.ElvUF_TargetCastbarMover = "BOTTOMElvUIParentBOTTOM228169" - E.db.movers.ElvUF_TargetTargetMover = "BOTTOMRIGHTUIParentBOTTOMRIGHT-835169" - E.db.movers.ElvUF_PetMover = "BOTTOMElvUIParentBOTTOM-264157" - E.db.movers.ElvUF_PetTargetMover = "BOTTOMLEFTUIParentBOTTOMLEFT835169" - E.db.movers.PetAB = "BOTTOMElvUIParentBOTTOM-275115" - E.db.movers.TotemBarMover = "BOTTOMElvUIParentBOTTOM-275245" - E.db.movers.TempEnchantMover = "BOTTOMElvUIParentBOTTOM-158255" - E.db.movers.ElvUF_PartyMover = "BOTTOMLEFTElvUIParentBOTTOMLEFT0245" - E.db.movers.ElvUF_Raid10Mover = "BOTTOMLEFTElvUIParentBOTTOMLEFT0245" - E.db.movers.ElvUF_Raid25Mover = "BOTTOMLEFTElvUIParentBOTTOMLEFT0245" - E.db.movers.ElvUF_Raid40Mover = "BOTTOMLEFTElvUIParentBOTTOMLEFT0245" - E.db.movers.BossButton = "BOTTOMElvUIParentBOTTOM0237" - end - E.db.movers.ElvAB_1 = "BOTTOMElvUIParentBOTTOM019" - E.db.movers.ElvAB_2 = "BOTTOMElvUIParentBOTTOM8519" - E.db.movers.ElvAB_3 = "BOTTOMElvUIParentBOTTOM-8519" - E.db.movers.ElvAB_4 = "TOPRIGHTUIParentTOPRIGHT-311-319" - E.db.movers.ElvAB_5 = "BOTTOMElvUIParentBOTTOM-24919" - E.db.movers.MinimapMover = "TOPRIGHTElvUIParentTOPRIGHT2-18" - E.db.movers.UIBFrameMover = "TOPLEFTElvUIParentTOPLEFT0-451" - E.db.movers.WatchFrameMover = "TOPRIGHTUIParentTOPRIGHT-237-231" - E.db.movers.BossHeaderMover = "TOPRIGHTElvUIParentTOPRIGHT-1-217" - E.db.movers.ArenaHeaderMover = "TOPRIGHTElvUIParentTOPRIGHT-1-217" - E.db.movers.PetBattleABMover = "BOTTOMElvUIParentBOTTOM019" - E.db.movers.ShiftAB = "BOTTOMElvUIParentBOTTOM-14019" - if UnitLevel('player') == 90 then - E.db.movers.ExperienceBarMover = "TOPElvUIParentTOP0-19" - E.db.movers.ReputationBarMover = "TOPElvUIParentTOP0-19" - E.db.movers.PvPMover = "TOPElvUIParentTOP-5-50" - E.db.movers.LocationMover = "TOPElvUIParentTOP0-30" - E.db.movers.LocationLiteMover = "TOPElvUIParentTOP0-30" - E.db.movers.AlertFrameMover = "TOPElvUIParentTOP0-32" - else - E.db.movers.ExperienceBarMover = "TOPElvUIParentTOP0-19" - E.db.movers.ReputationBarMover = "TOPElvUIParentTOP0-30" - E.db.movers.LocationMover = "TOPElvUIParentTOP0-41" - E.db.movers.LocationLiteMover = "TOPElvUIParentTOP0-41" - E.db.movers.AlertFrameMover = "TOPElvUIParentTOP0-43" - E.db.movers.PvPMover = "TOPElvUIParentTOP-5-61" - end - E.db.movers.MarkMover = "BOTTOMElvUIParentBOTTOM0132" - E.db.movers.MicrobarMover = "BOTTOMRIGHTElvUIParentBOTTOMRIGHT2244" - E.db.movers.LootFrameMover = "TOPLEFTUIParentTOPLEFT60-360" - E.db.movers.AurasMover = "TOPRIGHTElvUIParentTOPRIGHT-208-19" - E.db.movers.BagsMover = "TOPLEFTUIParentTOPLEFT0-19" - E.db.movers.GMMover = "TOPLEFTElvUIParentTOPLEFT402-19" - E.db.movers.BNETMover = "BOTTOMLEFTElvUIParentBOTTOMLEFT0479" - E.db.movers.ElvUF_FocusMover = "BOTTOMElvUIParentBOTTOM239103" - E.db.movers.ElvUF_FocusTargetMover = "BOTTOMElvUIParentBOTTOM23934" - E.db.movers.VehicleSeatMover = "TOPLEFTElvUIParentTOPLEFT185-38" - E.db.movers.DP_5_Mover = "BOTTOMElvUIParentBOTTOM-3050" - E.db.movers.DP_6_Mover = "BOTTOMElvUIParentBOTTOM3050" - E.db.movers.RightChatMover = "BOTTOMRIGHTUIParentBOTTOMRIGHT019" - E.db.movers.LeftChatMover = "BOTTOMLEFTUIParentBOTTOMLEFT019" - E.db.movers.Dashboard = "TOPLEFTElvUIParentTOPLEFT0-19" - E.db.movers.RaidUtility_Mover = "TOPElvUIParentTOP-283-19" - end - - E:UpdateAll(true) -end - -function E:RepoocSetup() --The function to switch from classic ElvUI settings to Repooc's - InstallStepComplete.message = L["Repooc's Defaults Set"] - InstallStepComplete:Show() - if not E.db.movers then E.db.movers = {}; end - - layout = E.db.layoutSet --Pull which layout was selected if any. - - --General Options - E.db.general.bottomPanel = true - E.db.general.topPanel = true - E.db.general.backdropfadecolor = { - ["b"] = 0.06, - ["g"] = 0.06, - ["r"] = 0.06, - } - E.db.general.valuecolor = { - ["b"] = 0.59, - ["g"] = 1, - ["r"] = 0, - } - E.db.general.vendorGrays = true - E.db.general.bordercolor = { - ["b"] = 0.31, - ["g"] = 0.31, - ["r"] = 0.31, - } - E.db.general.experience.enable = true - E.db.general.reputation.enable = true - E.db.general.interruptAnnounce = "RAID" - - --Bags - E.db.bags.xOffset = 3 - - E.db.hideTutorial = 1 - - --Chat - E.db.chat.hyperlinkHover = false - E.db.chat.editBoxPosition = "ABOVE_CHAT" - E.db.chat.fontOutline = "OUTLINE" - E.db.chat.panelBackdropNameLeft = "Interface\\AddOns\\ElvUI_SLE\\media\\textures\\logo_elvui_sle.tga" - E.db.chat.panelBackdropNameRight = "Interface\\AddOns\\ElvUI_SLE\\media\\textures\\logo_elvui_sle.tga" - E.db.chat.panelTabBackdrop = false - E.db.chat.panelWidth = 433 - E.db.chat.tabFontSize = 11 - E.db.chat.timeStampFormat = "%I:%M %p " - - --Tooltip - E.db.tooltip.count = false - E.db.tooltip.spellid = false - - --Datatext - do - E.db.datatexts.minimapPanels = false - E.db.datatexts.fontOutline = "OUTLINE" - E.db.datatexts.lfrshow = true - - E.db.sle.datatext.bottom.enabled = true --Checked - E.private.sle.datatext.bottomhide = true - E.db.sle.datatext.chatleft.width = 417 - E.db.sle.datatext.chatright.width = 417 - E.db.sle.datatext.dp1.enabled = false - E.db.sle.datatext.dp2.enabled = false - E.db.sle.datatext.dp3.enabled = false - E.db.sle.datatext.dp4.enabled = false - E.db.sle.datatext.dp5.enabled = true - E.db.sle.datatext.dp5.width = 433 - E.private.sle.datatext.dp5hide = true - E.db.sle.datatext.dp6.enabled = true - E.db.sle.datatext.dp6.width = 433 - E.private.sle.datatext.dp6hide = true - E.db.sle.datatext.top.enabled = true - E.private.sle.datatext.tophide = true - - --Datatext Panels Presets - E.db.datatexts.panels['DP_1']['left'] = "" - E.db.datatexts.panels['DP_1']['middle'] = "" - E.db.datatexts.panels['DP_1']['righ'] = "" - E.db.datatexts.panels['DP_2']['left'] = "" - E.db.datatexts.panels['DP_2']['middle'] = "" - E.db.datatexts.panels['DP_2']['right'] = "" - E.db.datatexts.panels['DP_3']['left'] = "" - E.db.datatexts.panels['DP_3']['middle'] = "" - E.db.datatexts.panels['DP_3']['right'] = "" - E.db.datatexts.panels['DP_4']['left'] = "" - E.db.datatexts.panels['DP_4']['middle'] = "" - E.db.datatexts.panels['DP_4']['right'] = "" - E.db.datatexts.panels['DP_5']['left'] = "Durability" - E.db.datatexts.panels['DP_5']['middle'] = "" - E.db.datatexts.panels['DP_5']['right'] = "" - E.db.datatexts.panels['DP_6']['left'] = "" - E.db.datatexts.panels['DP_6']['middle'] = "" - E.db.datatexts.panels['DP_6']['right'] = "" - E.db.datatexts.panels['LeftChatDataPanel']['left'] = "Bags" - E.db.datatexts.panels['LeftChatDataPanel']['middle'] = "" - E.db.datatexts.panels['LeftChatDataPanel']['right'] = "" - E.db.datatexts.panels['RightChatDataPanel']['left'] = "" - E.db.datatexts.panels['RightChatDataPanel']['middle'] = "Gold" - E.db.datatexts.panels['RightChatDataPanel']['right'] = "Time" - E.db.datatexts.panels['Top_Center'] = "Version" - E.db.datatexts.panels['Bottom_Panel'] = "System" - E.db.datatexts.panels['LeftMiniPanel'] = "" - E.db.datatexts.panels['RightMiniPanel'] = "" - - --Datatext Panels Spec Specific - if layout == 'tank' then - E.db.datatexts.panels.DP_5.middle = "" - E.db.datatexts.panels.DP_5.right = "" - E.db.datatexts.panels.DP_6.left = "" - E.db.datatexts.panels.DP_6.middle = "" - elseif layout == 'healer' then - E.db.datatexts.panels.DP_5.middle = "MP5" - E.db.datatexts.panels.DP_5.right = "Spell/Heal Power" - E.db.datatexts.panels.DP_6.left = "Haste" - E.db.datatexts.panels.DP_6.middle = "Crit Chance" - elseif layout == 'dpsCaster' then - E.db.datatexts.panels.DP_5.middle = "" - E.db.datatexts.panels.DP_5.right = "" - E.db.datatexts.panels.DP_6.left = "" - E.db.datatexts.panels.DP_6.middle = "" - else - E.db.datatexts.panels.DP_5.middle = "" - E.db.datatexts.panels.DP_5.right = "" - E.db.datatexts.panels.DP_6.left = "" - E.db.datatexts.panels.DP_6.middle = "" - end - end - - --Unitframes - do - --Raid10 - E.db.unitframe.units.raid10.xOffset = 2 - E.db.unitframe.units.raid10.columnSpacing = 2 - E.db.unitframe.units.raid10.healPrediction = true - E.db.unitframe.units.raid10.width = 79 - - --Target - E.db.unitframe.units.target.aurabar.attachTo = "BUFFS" - E.db.unitframe.units.target.smartAuraDisplay = "SHOW_DEBUFFS_ON_FRIENDLIES" - E.db.unitframe.units.target.buffs.playerOnly.friendly = true - E.db.unitframe.units.target.debuffs.enable = false - E.db.unitframe.units.target.power.position = "BOTTOMLEFT" - E.db.unitframe.units.target.power.hideonnpc = false - E.db.unitframe.units.target.health.position = "LEFT" - - --Party - E.db.unitframe.units.party.columnAnchorPoint = "LEFT" - E.db.unitframe.units.party.healPrediction = true - E.db.unitframe.units.party.height = 52 - E.db.unitframe.units.party.point = "LEFT" - E.db.unitframe.units.party.width = 80 - E.db.unitframe.units.party.xOffset = 5 - E.db.unitframe.units.party.debuffs.anchorPoint = "BOTTOMLEFT" - E.db.unitframe.units.party.debuffs.initialAnchor = "TOPLEFT" - E.db.unitframe.units.party.debuffs.sizeOverride = 0 - E.db.unitframe.units.party.debuffs.useFilter = "Blacklist" - E.db.unitframe.units.party.health.frequentUpdates = true - E.db.unitframe.units.party.health.orientation = "VERTICAL" - E.db.unitframe.units.party.health.position = "BOTTOM" - E.db.unitframe.units.party.health.text_format = "[healthcolor][health:deficit]" - E.db.unitframe.units.party.targetsGroup.anchorPoint = "TOP" - E.db.unitframe.units.party.targetsGroup.initialAnchor = "BOTTOM" - E.db.unitframe.units.party.targetsGroup.width = 80 - E.db.unitframe.units.party.targetsGroup.xOffset = 0 - E.db.unitframe.units.party.targetsGroup.yOffset = 1 - E.db.unitframe.units.party.name.position = "TOP" - E.db.unitframe.units.party.name.text_format = "[namecolor][name:medium]" - E.db.unitframe.units.party.petsGroup.anchorPoint = "TOP" - E.db.unitframe.units.party.petsGroup.enable = true - E.db.unitframe.units.party.petsGroup.initialAnchor = "BOTTOM" - E.db.unitframe.units.party.petsGroup.width = 80 - E.db.unitframe.units.party.petsGroup.xOffset = 0 - E.db.unitframe.units.party.petsGroup.yOffset = 1 - - --Raid25 - E.db.unitframe.units.raid25.columnSpacing = 2 - E.db.unitframe.units.raid25.customTexts = {} - E.db.unitframe.units.raid25.healPrediction = true - E.db.unitframe.units.raid25.health.frequentUpdates = true - E.db.unitframe.units.raid25.health.orientation = "VERTICAL" - E.db.unitframe.units.raid25.width = 79 - E.db.unitframe.units.raid25.xOffset = 2 - - --Raid40 - E.db.unitframe.units.raid40.columnSpacing = 2 - E.db.unitframe.units.raid40.healPrediction = true - E.db.unitframe.units.raid40.health.frequentUpdates = true - E.db.unitframe.units.raid40.health.text = true - E.db.unitframe.units.raid40.health.orientation = "VERTICAL" - E.db.unitframe.units.raid40.height = 36 - E.db.unitframe.units.raid40.name.position = "TOP" - E.db.unitframe.units.raid40.roleIcon.enable = true - E.db.unitframe.units.raid40.width = 79 - E.db.unitframe.units.raid40.xOffset = 2 - - --Arena - E.db.unitframe.units.arena.castbar.width = 200 - E.db.unitframe.units.arena.width = 200 - - --Player - E.db.unitframe.units.player.health.position = "TOPRIGHT" - E.db.unitframe.units.player.power.position = "BOTTOMRIGHT" - - --Boss - E.db.unitframe.units.boss.width = 200 - E.db.unitframe.units.boss.castbar.width = 200 - - E.db.unitframe.colors.healthclass = true - E.db.unitframe.colors.auraBarBuff = { - ["b"] = 0.59, - ["g"] = 1, - ["r"] = 0, - } - E.db.unitframe.colors.castColor = { - ["b"] = 0.59, - ["g"] = 1, - ["r"] = 0, - } - end - - --Actionbars - --Bar 2 - E.db.actionbar.bar2.enabled = true - --Bar 3 - E.db.actionbar.bar3.enabled = false - --Bar 4 - E.db.actionbar.bar4.enabled = true - E.db.actionbar.bar4.backdrop = false - E.db.actionbar.bar4.buttonsize = 28 - E.db.actionbar.bar4.buttonspacing = 1 - --Bar 5 - E.db.actionbar.bar5.enabled = false - - --UIButtons - E.db.sle.uibuttons.enable = true - E.db.sle.uibuttons.position = "uib_hor" - - --SLE Tooltip - E.db.sle.castername = true - - do - if layout == "healer" then - E.db.movers.ElvUF_PlayerMover = "BOTTOMLEFTElvUIParentBOTTOMLEFT460187" - E.db.movers.ElvUF_TargetMover = "BOTTOMRIGHTElvUIParentBOTTOMRIGHT-460187" - E.db.movers.ElvUF_TargetTargetMover = "BOTTOMRIGHTElvUIParentBOTTOMRIGHT-460129" - E.db.movers.ElvUF_PetMover = "BOTTOMLEFTElvUIParentBOTTOMLEFT460129" - E.db.movers.ElvUF_FocusMover = "BOTTOMRIGHTElvUIParentBOTTOMRIGHT-50052" - E.db.movers.ElvUF_PartyMover = "BOTTOMElvUIParentBOTTOM074" - E.db.movers.ElvUF_PlayerCastbarMover = "BOTTOMLEFTElvUIParentBOTTOMLEFT460166" - E.db.movers.ElvUF_Raid10Mover = "BOTTOMElvUIParentBOTTOM091" - E.db.movers.ElvUF_Raid25Mover = "BOTTOMElvUIParentBOTTOM091" - E.db.movers.ElvUF_Raid40Mover = "BOTTOMLEFTElvUIParentBOTTOMLEFT13202" - E.db.movers.ElvUF_TargetCastbarMover = "BOTTOMRIGHTElvUIParentBOTTOMRIGHT-460166" - E.db.movers.UIBFrameMover = "BOTTOMLEFTElvUIParentBOTTOMLEFT329175" - E.db.movers.ElvAB_1 = "BOTTOMElvUIParentBOTTOM021" - E.db.movers.ElvAB_2 = "BOTTOMElvUIParentBOTTOM055" - E.db.movers.ElvAB_4 = "TOPRIGHTElvUIParentTOPRIGHT-4-185" - E.db.movers.ElvUF_FocusCastbarMover = "BOTTOMRIGHTElvUIParentBOTTOMRIGHT-50031" - E.db.movers.DP_6_Mover = "BOTTOMElvUIParentBOTTOM3110" - E.db.movers.LeftChatMover = "BOTTOMLEFTUIParentBOTTOMLEFT019" - E.db.movers.DP_5_Mover = "BOTTOMElvUIParentBOTTOM-3100" - E.db.movers.ReputationBarMover = "TOPElvUIParentTOP0-21" - E.db.movers.AlertFrameMover = "TOPElvUIParentTOP0-43" - E.db.movers.WatchFrameMover = "TOPLEFTElvUIParentTOPLEFT115-123" - E.db.movers.LootFrameMover = "TOPRIGHTElvUIParentTOPRIGHT-140-356" - E.db.movers.RaidUtility_Mover = "TOPLEFTElvUIParentTOPLEFT524-4" - E.db.movers.BossHeaderMover = "TOPRIGHTElvUIParentTOPRIGHT-91-210" - E.db.movers.RightChatMover = "BOTTOMRIGHTUIParentBOTTOMRIGHT019" - E.db.movers.ExperienceBarMover = "TOPElvUIParentTOP0-32" - - else - E.db.movers.ElvUF_PlayerMover = "BOTTOMLEFTElvUIParentBOTTOMLEFT460187" - E.db.movers.ElvUF_TargetMover = "BOTTOMRIGHTElvUIParentBOTTOMRIGHT-460187" - E.db.movers.ElvUF_TargetTargetMover = "BOTTOMRIGHTElvUIParentBOTTOMRIGHT-460129" - E.db.movers.ElvUF_PetMover = "BOTTOMLEFTElvUIParentBOTTOMLEFT460129" - E.db.movers.ElvUF_FocusMover = "BOTTOMRIGHTElvUIParentBOTTOMRIGHT-50052" - E.db.movers.ElvUF_PartyMover = "BOTTOMElvUIParentBOTTOM074" - E.db.movers.ElvUF_PlayerCastbarMover = "BOTTOMLEFTElvUIParentBOTTOMLEFT460166" - E.db.movers.ElvUF_Raid10Mover = "BOTTOMElvUIParentBOTTOM091" - E.db.movers.ElvUF_Raid25Mover = "BOTTOMElvUIParentBOTTOM091" - E.db.movers.ElvUF_Raid40Mover = "BOTTOMLEFTElvUIParentBOTTOMLEFT13202" - E.db.movers.ElvUF_TargetCastbarMover = "BOTTOMRIGHTElvUIParentBOTTOMRIGHT-460166" - E.db.movers.UIBFrameMover = "BOTTOMLEFTElvUIParentBOTTOMLEFT329175" - E.db.movers.ElvAB_1 = "BOTTOMElvUIParentBOTTOM021" - E.db.movers.ElvAB_2 = "BOTTOMElvUIParentBOTTOM055" - E.db.movers.ElvAB_4 = "TOPRIGHTElvUIParentTOPRIGHT-4-185" - E.db.movers.ElvUF_FocusCastbarMover = "BOTTOMRIGHTElvUIParentBOTTOMRIGHT-50031" - E.db.movers.DP_6_Mover = "BOTTOMElvUIParentBOTTOM3110" - E.db.movers.LeftChatMover = "BOTTOMLEFTUIParentBOTTOMLEFT019" - E.db.movers.DP_5_Mover = "BOTTOMElvUIParentBOTTOM-3100" - E.db.movers.ReputationBarMover = "TOPElvUIParentTOP0-21" - E.db.movers.AlertFrameMover = "TOPElvUIParentTOP0-43" - E.db.movers.WatchFrameMover = "TOPLEFTElvUIParentTOPLEFT115-123" - E.db.movers.LootFrameMover = "TOPRIGHTElvUIParentTOPRIGHT-140-356" - E.db.movers.RaidUtility_Mover = "TOPLEFTElvUIParentTOPLEFT524-4" - E.db.movers.BossHeaderMover = "TOPRIGHTElvUIParentTOPRIGHT-91-210" - E.db.movers.RightChatMover = "BOTTOMRIGHTUIParentBOTTOMRIGHT019" - E.db.movers.ExperienceBarMover = "TOPElvUIParentTOP0-32" - end - end - - E:UpdateAll(true) -end - -function E:HudSimple() - local H = E:GetModule('HUD') - InstallStepComplete.message = L["Simple Layout Set"] - InstallStepComplete:Show() - H:SimpleLayout() - H:UpdateAllFrames() -end - -function E:HudDefault() - local H = E:GetModule('HUD') - InstallStepComplete.message = L["Default Layout"] - InstallStepComplete:Show() - E:CopyTable(E.db.hud,P.hud) - H:UpdateAllFrames() -end - -local function InstallComplete() - E.private.install_complete = E.version - - if GetCVarBool("Sound_EnableMusic") then - StopMusic() - end - - ReloadUI() -end - -local function ResetAll() - InstallNextButton:Disable() - InstallPrevButton:Disable() - InstallOption1Button:Hide() - InstallOption1Button:SetScript("OnClick", nil) - InstallOption1Button:SetText("") - InstallOption2Button:Hide() - InstallOption2Button:SetScript('OnClick', nil) - InstallOption2Button:SetText('') - InstallOption3Button:Hide() - InstallOption3Button:SetScript('OnClick', nil) - InstallOption3Button:SetText('') - InstallOption4Button:Hide() - InstallOption4Button:SetScript('OnClick', nil) - InstallOption4Button:SetText('') - ElvUIInstallFrame.SubTitle:SetText("") - ElvUIInstallFrame.Desc1:SetText("") - ElvUIInstallFrame.Desc2:SetText("") - ElvUIInstallFrame.Desc3:SetText("") - ElvUIInstallFrame:Size(550, 400) -end - -local function SetPage(PageNum) - CURRENT_PAGE = PageNum - ResetAll() - InstallStatus:SetValue(PageNum) - - local f = ElvUIInstallFrame - - if PageNum == MAX_PAGE then - InstallNextButton:Disable() - else - InstallNextButton:Enable() - end - - if PageNum == 1 then - InstallPrevButton:Disable() - else - InstallPrevButton:Enable() - end - - if PageNum == 1 then - f.SubTitle:SetText(format(L["Welcome to ElvUI version %s!"], E.version)) - f.Desc1:SetText(L["This install process will help you learn some of the features in ElvUI has to offer and also prepare your user interface for usage."]) - f.Desc2:SetText(L["The in-game configuration menu can be accesses by typing the /ec command or by clicking the 'C' button on the minimap. Press the button below if you wish to skip the installation process."]) - f.Desc3:SetText(L["Please press the continue button to go onto the next step."]) - - InstallOption1Button:Show() - InstallOption1Button:SetScript("OnClick", InstallComplete) - InstallOption1Button:SetText(L["Skip Process"]) - elseif PageNum == 2 then - f.SubTitle:SetText(L["CVars"]) - f.Desc1:SetText(L["This part of the installation process sets up your World of Warcraft default options it is recommended you should do this step for everything to behave properly."]) - f.Desc2:SetText(L["Please click the button below to setup your CVars."]) - f.Desc3:SetText(L["Importance: |cff07D400High|r"]) - InstallOption1Button:Show() - InstallOption1Button:SetScript("OnClick", SetupCVars) - InstallOption1Button:SetText(L["Setup CVars"]) - elseif PageNum == 3 then - f.SubTitle:SetText(L["Chat"]) - f.Desc1:SetText(L["This part of the installation process sets up your chat windows names, positions and colors."]) - f.Desc2:SetText(L["The chat windows function the same as Blizzard standard chat windows, you can right click the tabs and drag them around, rename, etc. Please click the button below to setup your chat windows."]) - f.Desc3:SetText(L["Importance: |cffD3CF00Medium|r"]) - InstallOption1Button:Show() - InstallOption1Button:SetScript("OnClick", SetupChat) - InstallOption1Button:SetText(L["Setup Chat"]) - elseif PageNum == 4 then - f.SubTitle:SetText(L["Pixel Perfect"]) - f.Desc1:SetText(L['The Pixel Perfect option will change the overall apperance of your UI. Using Pixel Perfect is a slight performance increase over the traditional layout.']) - f.Desc2:SetText(L['Using this option will cause your borders around frames to be 1 pixel wide instead of 3 pixel. You may have to finish the installation to notice a differance. By default this is enabled.']) - f.Desc3:SetText(L["Importance: |cffFF0000Low|r"]) - - InstallOption1Button:Show() - InstallOption1Button:SetScript('OnClick', function() E:SetupPixelPerfect(true) end) - InstallOption1Button:SetText(L["Enable"]) - InstallOption2Button:Show() - InstallOption2Button:SetScript('OnClick', function() E:SetupPixelPerfect(false) end) - InstallOption2Button:SetText(L['Disable']) - elseif PageNum == 5 then - f.SubTitle:SetText(L['Theme Setup']) - f.Desc1:SetText(L['Choose a theme layout you wish to use for your initial setup.']) - f.Desc2:SetText(L['You can always change fonts and colors of any element of elvui from the in-game configuration.']) - f.Desc3:SetText(L["Importance: |cffFF0000Low|r"]) - - InstallOption1Button:Show() - InstallOption1Button:SetScript('OnClick', function() E:SetupTheme('classic') end) - InstallOption1Button:SetText(L["Classic"]) - InstallOption2Button:Show() - InstallOption2Button:SetScript('OnClick', function() E:SetupTheme('default') end) - InstallOption2Button:SetText(L['Dark']) - InstallOption3Button:Show() - InstallOption3Button:SetScript('OnClick', function() E:SetupTheme('class') end) - InstallOption3Button:SetText(CLASS) - elseif PageNum == 6 then - f.SubTitle:SetText(L["Resolution"]) - f.Desc1:SetText(format(L["Your current resolution is %s, this is considered a %s resolution."], E.resolution, E.lowversion == true and L["low"] or L["high"])) - if E.lowversion then - f.Desc2:SetText(L["This resolution requires that you change some settings to get everything to fit on your screen."].." "..L["Click the button below to resize your chat frames, unitframes, and reposition your actionbars."].." "..L["You may need to further alter these settings depending how low you resolution is."]) - f.Desc3:SetText(L["Importance: |cff07D400High|r"]) - else - f.Desc2:SetText(L["This resolution doesn't require that you change settings for the UI to fit on your screen."].." "..L["Click the button below to resize your chat frames, unitframes, and reposition your actionbars."].." "..L["This is completely optional."]) - f.Desc3:SetText(L["Importance: |cffFF0000Low|r"]) - end - - InstallOption1Button:Show() - InstallOption1Button:SetScript('OnClick', function() E.SetupResolution('high') end) - InstallOption1Button:SetText(L["High Resolution"]) - InstallOption2Button:Show() - InstallOption2Button:SetScript('OnClick', function() E.SetupResolution('low') end) - InstallOption2Button:SetText(L['Low Resolution']) - elseif PageNum == 7 then - f.SubTitle:SetText(L["Layout"]) - f.Desc1:SetText(L["You can now choose what layout you wish to use based on your combat role."]) - f.Desc2:SetText(L["This will change the layout of your unitframes, raidframes, and datatexts."]) - f.Desc3:SetText(L["Importance: |cffD3CF00Medium|r"]) - InstallOption1Button:Show() - InstallOption1Button:SetScript('OnClick', function() E.db.layoutSet = nil; E:SetupLayout('tank') end) - InstallOption1Button:SetText(L['Tank']) - InstallOption2Button:Show() - InstallOption2Button:SetScript('OnClick', function() E.db.layoutSet = nil; E:SetupLayout('healer') end) - InstallOption2Button:SetText(L['Healer']) - InstallOption3Button:Show() - InstallOption3Button:SetScript('OnClick', function() E.db.layoutSet = nil; E:SetupLayout('dpsMelee') end) - InstallOption3Button:SetText(L['Physical DPS']) - InstallOption4Button:Show() - InstallOption4Button:SetScript('OnClick', function() E.db.layoutSet = nil; E:SetupLayout('dpsCaster') end) - InstallOption4Button:SetText(L['Caster DPS']) - elseif PageNum == 8 then - f.SubTitle:SetText(L["Auras System"]) - f.Desc1:SetText(L["Select the type of aura system you want to use with ElvUI's unitframes. The integrated system utilizes both aura-bars and aura-icons. The icons only system will display only icons and aurabars won't be used. The classic system will configure your auras to how they were pre-v4."]) - f.Desc2:SetText(L["If you have an icon or aurabar that you don't want to display simply hold down shift and right click the icon for it to disapear."]) - f.Desc3:SetText(L["Importance: |cffD3CF00Medium|r"]) - InstallOption1Button:Show() - InstallOption1Button:SetScript('OnClick', function() SetupAuras('classic') end) - InstallOption1Button:SetText(L['Classic']) - InstallOption2Button:Show() - InstallOption2Button:SetScript('OnClick', function() SetupAuras() end) - InstallOption2Button:SetText(L['Icons Only']) - InstallOption3Button:Show() - InstallOption3Button:SetScript('OnClick', function() SetupAuras('integrated') end) - InstallOption3Button:SetText(L['Integrated']) - elseif PageNum == 9 then --The new page - f.SubTitle:SetText(L["Shadow & Light Settings"]) - f.Desc1:SetText(L["You can now choose if you what to use one of authors' set of options. This will change not only the positioning of some elements but also change a bunch of other options."]) - f.Desc2:SetText(L["SLE_Install_Text2"]) - f.Desc3:SetText(L["Importance: |cffFF0000Low|r"]) - - InstallOption1Button:Show() - InstallOption1Button:SetScript('OnClick', function() E:DarthSetup() end) - InstallOption1Button:SetText(L["Darth's Config"]) - InstallOption2Button:Show() - InstallOption2Button:SetScript('OnClick', function() E:RepoocSetup() end) - InstallOption2Button:SetText(L["Repooc's Config"]) - elseif PageNum == 10 and IsAddOnLoaded("ElvUI_Hud") then --Hud's page if enabled - f.SubTitle:SetText("ElvUI Hud") - f.Desc1:SetText(L["Thank you for using ElvUI Hud!"]) - f.Desc2:SetText(L["Here you can choose between the simple layout (only player health and power) or the default layout for the hud"]) - f.Desc3:SetText(L["Importance: |cffFF0000Low|r"]) - - InstallOption1Button:Show() - InstallOption1Button:SetScript('OnClick', function() E:HudSimple() end) - InstallOption1Button:SetText(L["Simple Layout"]) - InstallOption2Button:Show() - InstallOption2Button:SetScript('OnClick', function() E:HudDefault() end) - InstallOption2Button:SetText(L["Default Layout"]) - elseif PageNum == 10 and not IsAddOnLoaded("ElvUI_Hud") then --Finish install if Hud disabled - f.SubTitle:SetText(L["Installation Complete"]) - f.Desc1:SetText(L["You are now finished with the installation process. If you are in need of technical support please visit us at http://www.tukui.org."]) - f.Desc2:SetText(L["Please click the button below so you can setup variables and ReloadUI."]) - InstallOption1Button:Show() - InstallOption1Button:SetScript("OnClick", InstallComplete) - InstallOption1Button:SetText(L["Finished"]) - ElvUIInstallFrame:Size(550, 350) - elseif PageNum == 11 then --Finish install if Hud enabled - f.SubTitle:SetText(L["Installation Complete"]) - f.Desc1:SetText(L["You are now finished with the installation process. If you are in need of technical support please visit us at http://www.tukui.org."]) - f.Desc2:SetText(L["Please click the button below so you can setup variables and ReloadUI."]) - InstallOption1Button:Show() - InstallOption1Button:SetScript("OnClick", InstallComplete) - InstallOption1Button:SetText(L["Finished"]) - ElvUIInstallFrame:Size(550, 350) - end -end - -local function NextPage() - if CURRENT_PAGE ~= MAX_PAGE then - CURRENT_PAGE = CURRENT_PAGE + 1 - SetPage(CURRENT_PAGE) - end -end - -local function PreviousPage() - if CURRENT_PAGE ~= 1 then - CURRENT_PAGE = CURRENT_PAGE - 1 - SetPage(CURRENT_PAGE) - end -end - ---Install UI -function E:Install() - --ElvUI don't have this? - MaxPages() - if not InstallStepComplete then - local imsg = CreateFrame("Frame", "InstallStepComplete", E.UIParent) - imsg:Size(418, 72) - imsg:Point("TOP", 0, -190) - imsg:Hide() - imsg:SetScript('OnShow', function(self) - if self.message then - PlaySoundFile([[Sound\Interface\LevelUp.wav]]) - self.text:SetText(self.message) - UIFrameFadeOut(self, 3.5, 1, 0) - E:Delay(4, function() self:Hide() end) - self.message = nil - - if imsg.firstShow == false then - if GetCVarBool("Sound_EnableMusic") then - PlayMusic([[Sound\Music\ZoneMusic\DMF_L70ETC01.mp3]]) - end - imsg.firstShow = true - end - else - self:Hide() - end - end) - - imsg.firstShow = false - - imsg.bg = imsg:CreateTexture(nil, 'BACKGROUND') - imsg.bg:SetTexture([[Interface\LevelUp\LevelUpTex]]) - imsg.bg:SetPoint('BOTTOM') - imsg.bg:Size(326, 103) - imsg.bg:SetTexCoord(0.00195313, 0.63867188, 0.03710938, 0.23828125) - imsg.bg:SetVertexColor(1, 1, 1, 0.6) - - imsg.lineTop = imsg:CreateTexture(nil, 'BACKGROUND') - imsg.lineTop:SetDrawLayer('BACKGROUND', 2) - imsg.lineTop:SetTexture([[Interface\LevelUp\LevelUpTex]]) - imsg.lineTop:SetPoint("TOP") - imsg.lineTop:Size(418, 7) - imsg.lineTop:SetTexCoord(0.00195313, 0.81835938, 0.01953125, 0.03320313) - - imsg.lineBottom = imsg:CreateTexture(nil, 'BACKGROUND') - imsg.lineBottom:SetDrawLayer('BACKGROUND', 2) - imsg.lineBottom:SetTexture([[Interface\LevelUp\LevelUpTex]]) - imsg.lineBottom:SetPoint("BOTTOM") - imsg.lineBottom:Size(418, 7) - imsg.lineBottom:SetTexCoord(0.00195313, 0.81835938, 0.01953125, 0.03320313) - - imsg.text = imsg:CreateFontString(nil, 'ARTWORK', 'GameFont_Gigantic') - imsg.text:Point("BOTTOM", 0, 12) - imsg.text:SetTextColor(1, 0.82, 0) - imsg.text:SetJustifyH("CENTER") - end - - --Create Frame - if not ElvUIInstallFrame then - local f = CreateFrame("Button", "ElvUIInstallFrame", E.UIParent) - f.SetPage = SetPage - f:Size(550, 400) - f:SetTemplate("Transparent") - f:SetPoint("CENTER") - f:SetFrameStrata('TOOLTIP') - - f.Title = f:CreateFontString(nil, 'OVERLAY') - f.Title:FontTemplate(nil, 17, nil) - f.Title:Point("TOP", 0, -5) - f.Title:SetText(L["ElvUI Installation"]) - - f.Next = CreateFrame("Button", "InstallNextButton", f, "UIPanelButtonTemplate") - f.Next:StripTextures() - f.Next:SetTemplate("Default", true) - f.Next:Size(110, 25) - f.Next:Point("BOTTOMRIGHT", -5, 5) - f.Next:SetText(CONTINUE) - f.Next:Disable() - f.Next:SetScript("OnClick", NextPage) - E.Skins:HandleButton(f.Next, true) - - f.Prev = CreateFrame("Button", "InstallPrevButton", f, "UIPanelButtonTemplate") - f.Prev:StripTextures() - f.Prev:SetTemplate("Default", true) - f.Prev:Size(110, 25) - f.Prev:Point("BOTTOMLEFT", 5, 5) - f.Prev:SetText(PREVIOUS) - f.Prev:Disable() - f.Prev:SetScript("OnClick", PreviousPage) - E.Skins:HandleButton(f.Prev, true) - - f.Status = CreateFrame("StatusBar", "InstallStatus", f) - f.Status:SetFrameLevel(f.Status:GetFrameLevel() + 2) - f.Status:CreateBackdrop("Default") - f.Status:SetStatusBarTexture(E["media"].normTex) - f.Status:SetStatusBarColor(unpack(E["media"].rgbvaluecolor)) - f.Status:SetMinMaxValues(0, MAX_PAGE) - f.Status:Point("TOPLEFT", f.Prev, "TOPRIGHT", 6, -2) - f.Status:Point("BOTTOMRIGHT", f.Next, "BOTTOMLEFT", -6, 2) - f.Status.text = f.Status:CreateFontString(nil, 'OVERLAY') - f.Status.text:FontTemplate() - f.Status.text:SetPoint("CENTER") - f.Status.text:SetText(CURRENT_PAGE.." / "..MAX_PAGE) - f.Status:SetScript("OnValueChanged", function(self) - self.text:SetText(self:GetValue().." / "..MAX_PAGE) - end) - - f.Option1 = CreateFrame("Button", "InstallOption1Button", f, "UIPanelButtonTemplate") - f.Option1:StripTextures() - f.Option1:Size(160, 30) - f.Option1:Point("BOTTOM", 0, 45) - f.Option1:SetText("") - f.Option1:Hide() - E.Skins:HandleButton(f.Option1, true) - - f.Option2 = CreateFrame("Button", "InstallOption2Button", f, "UIPanelButtonTemplate") - f.Option2:StripTextures() - f.Option2:Size(110, 30) - f.Option2:Point('BOTTOMLEFT', f, 'BOTTOM', 4, 45) - f.Option2:SetText("") - f.Option2:Hide() - f.Option2:SetScript('OnShow', function() f.Option1:SetWidth(110); f.Option1:ClearAllPoints(); f.Option1:Point('BOTTOMRIGHT', f, 'BOTTOM', -4, 45) end) - f.Option2:SetScript('OnHide', function() f.Option1:SetWidth(160); f.Option1:ClearAllPoints(); f.Option1:Point("BOTTOM", 0, 45) end) - E.Skins:HandleButton(f.Option2, true) - - f.Option3 = CreateFrame("Button", "InstallOption3Button", f, "UIPanelButtonTemplate") - f.Option3:StripTextures() - f.Option3:Size(100, 30) - f.Option3:Point('LEFT', f.Option2, 'RIGHT', 4, 0) - f.Option3:SetText("") - f.Option3:Hide() - f.Option3:SetScript('OnShow', function() f.Option1:SetWidth(100); f.Option1:ClearAllPoints(); f.Option1:Point('RIGHT', f.Option2, 'LEFT', -4, 0); f.Option2:SetWidth(100); f.Option2:ClearAllPoints(); f.Option2:Point('BOTTOM', f, 'BOTTOM', 0, 45) end) - f.Option3:SetScript('OnHide', function() f.Option1:SetWidth(160); f.Option1:ClearAllPoints(); f.Option1:Point("BOTTOM", 0, 45); f.Option2:SetWidth(110); f.Option2:ClearAllPoints(); f.Option2:Point('BOTTOMLEFT', f, 'BOTTOM', 4, 45) end) - E.Skins:HandleButton(f.Option3, true) - - f.Option4 = CreateFrame("Button", "InstallOption4Button", f, "UIPanelButtonTemplate") - f.Option4:StripTextures() - f.Option4:Size(100, 30) - f.Option4:Point('LEFT', f.Option3, 'RIGHT', 4, 0) - f.Option4:SetText("") - f.Option4:Hide() - f.Option4:SetScript('OnShow', function() - f.Option1:Width(100) - f.Option2:Width(100) - - f.Option1:ClearAllPoints(); - f.Option1:Point('RIGHT', f.Option2, 'LEFT', -4, 0); - f.Option2:ClearAllPoints(); - f.Option2:Point('BOTTOMRIGHT', f, 'BOTTOM', -4, 45) - end) - f.Option4:SetScript('OnHide', function() f.Option1:SetWidth(160); f.Option1:ClearAllPoints(); f.Option1:Point("BOTTOM", 0, 45); f.Option2:SetWidth(110); f.Option2:ClearAllPoints(); f.Option2:Point('BOTTOMLEFT', f, 'BOTTOM', 4, 45) end) - E.Skins:HandleButton(f.Option4, true) - - f.SubTitle = f:CreateFontString(nil, 'OVERLAY') - f.SubTitle:FontTemplate(nil, 15, nil) - f.SubTitle:Point("TOP", 0, -40) - - f.Desc1 = f:CreateFontString(nil, 'OVERLAY') - f.Desc1:FontTemplate() - f.Desc1:Point("TOPLEFT", 20, -75) - f.Desc1:Width(f:GetWidth() - 40) - - f.Desc2 = f:CreateFontString(nil, 'OVERLAY') - f.Desc2:FontTemplate() - f.Desc2:Point("TOPLEFT", 20, -125) - f.Desc2:Width(f:GetWidth() - 40) - - f.Desc3 = f:CreateFontString(nil, 'OVERLAY') - f.Desc3:FontTemplate() - f.Desc3:Point("TOPLEFT", 20, -175) - f.Desc3:Width(f:GetWidth() - 40) - - local close = CreateFrame("Button", "InstallCloseButton", f, "UIPanelCloseButton") - close:SetPoint("TOPRIGHT", f, "TOPRIGHT") - close:SetScript("OnClick", function() - f:Hide() - end) - E.Skins:HandleCloseButton(close) - - f.tutorialImage = f:CreateTexture('InstallTutorialImage', 'OVERLAY') - f.tutorialImage:Size(256, 128) - f.tutorialImage:SetTexture('Interface\\AddOns\\ElvUI_SLE\\media\\textures\\logo_elvui_sle.tga') - f.tutorialImage:Point('BOTTOM', 0, 70) - - end - - ElvUIInstallFrame:Show() - NextPage() +local E, L, V, P, G, _ = unpack(ElvUI); --Inport: Engine, Locales, PrivateDB, ProfileDB, GlobalDB +local UF = E:GetModule('UnitFrames'); + +local CURRENT_PAGE = 0 +local MAX_PAGE + +local function MaxPages() + if IsAddOnLoaded("ElvUI_Hud") then + MAX_PAGE = 11 + else + MAX_PAGE = 10 + end +end + +local function SetupChat() + InstallStepComplete.message = L["Chat Set"] + InstallStepComplete:Show() + FCF_ResetChatWindows() + FCF_SetLocked(ChatFrame1, 1) + FCF_DockFrame(ChatFrame2) + FCF_SetLocked(ChatFrame2, 1) + + FCF_OpenNewWindow(LOOT) + FCF_UnDockFrame(ChatFrame3) + FCF_SetLocked(ChatFrame3, 1) + ChatFrame3:Show() + + for i = 1, NUM_CHAT_WINDOWS do + local frame = _G[format("ChatFrame%s", i)] + local chatFrameId = frame:GetID() + local chatName = FCF_GetChatWindowInfo(chatFrameId) + + -- move general bottom left + if i == 1 then + frame:ClearAllPoints() + frame:Point("BOTTOMLEFT", LeftChatToggleButton, "TOPLEFT", 1, 3) + elseif i == 3 then + frame:ClearAllPoints() + frame:Point("BOTTOMLEFT", RightChatDataPanel, "TOPLEFT", 1, 3) + end + + FCF_SavePositionAndDimensions(frame) + FCF_StopDragging(frame) + + -- set default Elvui font size + FCF_SetChatWindowFontSize(nil, frame, 12) + + -- rename windows general because moved to chat #3 + if i == 1 then + FCF_SetWindowName(frame, GENERAL) + elseif i == 2 then + FCF_SetWindowName(frame, GUILD_EVENT_LOG) + elseif i == 3 then + FCF_SetWindowName(frame, LOOT.." / "..TRADE) + end + end + + ChatFrame_RemoveAllMessageGroups(ChatFrame1) + ChatFrame_AddMessageGroup(ChatFrame1, "SAY") + ChatFrame_AddMessageGroup(ChatFrame1, "EMOTE") + ChatFrame_AddMessageGroup(ChatFrame1, "YELL") + ChatFrame_AddMessageGroup(ChatFrame1, "GUILD") + ChatFrame_AddMessageGroup(ChatFrame1, "OFFICER") + ChatFrame_AddMessageGroup(ChatFrame1, "GUILD_ACHIEVEMENT") + ChatFrame_AddMessageGroup(ChatFrame1, "WHISPER") + ChatFrame_AddMessageGroup(ChatFrame1, "MONSTER_SAY") + ChatFrame_AddMessageGroup(ChatFrame1, "MONSTER_EMOTE") + ChatFrame_AddMessageGroup(ChatFrame1, "MONSTER_YELL") + ChatFrame_AddMessageGroup(ChatFrame1, "MONSTER_BOSS_EMOTE") + ChatFrame_AddMessageGroup(ChatFrame1, "PARTY") + ChatFrame_AddMessageGroup(ChatFrame1, "PARTY_LEADER") + ChatFrame_AddMessageGroup(ChatFrame1, "RAID") + ChatFrame_AddMessageGroup(ChatFrame1, "RAID_LEADER") + ChatFrame_AddMessageGroup(ChatFrame1, "RAID_WARNING") + ChatFrame_AddMessageGroup(ChatFrame1, "BATTLEGROUND") + ChatFrame_AddMessageGroup(ChatFrame1, "BATTLEGROUND_LEADER") + ChatFrame_AddMessageGroup(ChatFrame1, "BG_HORDE") + ChatFrame_AddMessageGroup(ChatFrame1, "BG_ALLIANCE") + ChatFrame_AddMessageGroup(ChatFrame1, "BG_NEUTRAL") + ChatFrame_AddMessageGroup(ChatFrame1, "SYSTEM") + ChatFrame_AddMessageGroup(ChatFrame1, "ERRORS") + ChatFrame_AddMessageGroup(ChatFrame1, "AFK") + ChatFrame_AddMessageGroup(ChatFrame1, "DND") + ChatFrame_AddMessageGroup(ChatFrame1, "IGNORED") + ChatFrame_AddMessageGroup(ChatFrame1, "ACHIEVEMENT") + ChatFrame_AddMessageGroup(ChatFrame1, "BN_WHISPER") + ChatFrame_AddMessageGroup(ChatFrame1, "BN_CONVERSATION") + ChatFrame_AddMessageGroup(ChatFrame1, "BN_INLINE_TOAST_ALERT") + ChatFrame_AddMessageGroup(ChatFrame1, "INSTANCE_CHAT") + ChatFrame_AddMessageGroup(ChatFrame1, "INSTANCE_CHAT_LEADER") + + ChatFrame_RemoveAllMessageGroups(ChatFrame3) + ChatFrame_AddMessageGroup(ChatFrame3, "COMBAT_FACTION_CHANGE") + ChatFrame_AddMessageGroup(ChatFrame3, "SKILL") + ChatFrame_AddMessageGroup(ChatFrame3, "LOOT") + ChatFrame_AddMessageGroup(ChatFrame3, "MONEY") + ChatFrame_AddMessageGroup(ChatFrame3, "COMBAT_XP_GAIN") + ChatFrame_AddMessageGroup(ChatFrame3, "COMBAT_HONOR_GAIN") + ChatFrame_AddMessageGroup(ChatFrame3, "COMBAT_GUILD_XP_GAIN") + ChatFrame_AddChannel(ChatFrame1, GENERAL) + ChatFrame_RemoveChannel(ChatFrame1, L['Trade']) + ChatFrame_AddChannel(ChatFrame3, L['Trade']) + + + if E.myname == "Elvz" then + SetCVar("scriptErrors", 1) + end + + -- enable classcolor automatically on login and on each character without doing /configure each time. + ToggleChatColorNamesByClassGroup(true, "SAY") + ToggleChatColorNamesByClassGroup(true, "EMOTE") + ToggleChatColorNamesByClassGroup(true, "YELL") + ToggleChatColorNamesByClassGroup(true, "GUILD") + ToggleChatColorNamesByClassGroup(true, "OFFICER") + ToggleChatColorNamesByClassGroup(true, "GUILD_ACHIEVEMENT") + ToggleChatColorNamesByClassGroup(true, "ACHIEVEMENT") + ToggleChatColorNamesByClassGroup(true, "WHISPER") + ToggleChatColorNamesByClassGroup(true, "PARTY") + ToggleChatColorNamesByClassGroup(true, "PARTY_LEADER") + ToggleChatColorNamesByClassGroup(true, "RAID") + ToggleChatColorNamesByClassGroup(true, "RAID_LEADER") + ToggleChatColorNamesByClassGroup(true, "RAID_WARNING") + ToggleChatColorNamesByClassGroup(true, "BATTLEGROUND") + ToggleChatColorNamesByClassGroup(true, "BATTLEGROUND_LEADER") + ToggleChatColorNamesByClassGroup(true, "CHANNEL1") + ToggleChatColorNamesByClassGroup(true, "CHANNEL2") + ToggleChatColorNamesByClassGroup(true, "CHANNEL3") + ToggleChatColorNamesByClassGroup(true, "CHANNEL4") + ToggleChatColorNamesByClassGroup(true, "CHANNEL5") + ToggleChatColorNamesByClassGroup(true, "CHANNEL6") + ToggleChatColorNamesByClassGroup(true, "CHANNEL7") + ToggleChatColorNamesByClassGroup(true, "CHANNEL8") + ToggleChatColorNamesByClassGroup(true, "CHANNEL9") + ToggleChatColorNamesByClassGroup(true, "CHANNEL10") + ToggleChatColorNamesByClassGroup(true, "CHANNEL11") + ToggleChatColorNamesByClassGroup(true, "INSTANCE_CHAT") + ToggleChatColorNamesByClassGroup(true, "INSTANCE_CHAT_LEADER") + + --Adjust Chat Colors + --General + ChangeChatColor("CHANNEL1", 195/255, 230/255, 232/255) + --Trade + ChangeChatColor("CHANNEL2", 232/255, 158/255, 121/255) + --Local Defense + ChangeChatColor("CHANNEL3", 232/255, 228/255, 121/255) + + if E.Chat then + E.Chat:PositionChat(true) + if E.db['RightChatPanelFaded'] then + RightChatToggleButton:Click() + end + + if E.db['LeftChatPanelFaded'] then + LeftChatToggleButton:Click() + end + end +end + +local function SetupCVars() + SetCVar("mapQuestDifficulty", 1) + SetCVar("ShowClassColorInNameplate", 1) + SetCVar("screenshotQuality", 10) + SetCVar("chatMouseScroll", 1) + SetCVar("chatStyle", "classic") + SetCVar("WholeChatWindowClickable", 0) + SetCVar("ConversationMode", "inline") + SetCVar("showTutorials", 0) + SetCVar("UberTooltips", 1) + SetCVar("threatWarning", 3) + SetCVar('alwaysShowActionBars', 1) + SetCVar('lockActionBars', 1) + SetCVar('SpamFilter', 0) --Blocks mmo-champion.com, dumb... ElvUI one is more effeciant anyways. + InterfaceOptionsActionBarsPanelPickupActionKeyDropDown:SetValue('SHIFT') + InterfaceOptionsActionBarsPanelPickupActionKeyDropDown:RefreshValue() + + InstallStepComplete.message = L["CVars Set"] + InstallStepComplete:Show() +end + +function E:GetColor(r, b, g, a) + return { r = r, b = b, g = g, a = a } +end + +function E:SetupPixelPerfect(enabled, noMsg) + E.private.general.pixelPerfect = enabled; + + if (E.PixelMode ~= enabled) then + E:StaticPopup_Show('PIXELPERFECT_CHANGED') + end + + if not noMsg then + E.db.general.bottomPanel = enabled + E:GetModule('Layout'):BottomPanelVisibility() + end + + if noMsg then + if enabled then + if not E.db.movers then E.db.movers = {}; end + + E.db.movers["ElvUF_PetMover"] = "BOTTOMElvUIParentBOTTOM0104" + E.db.movers["ElvUF_TargetTargetMover"] = "BOTTOMElvUIParentBOTTOM064" + E.db.movers["ElvUF_PlayerMover"] = "BOTTOMElvUIParentBOTTOM-27865" + E.db.movers["ElvUF_TargetMover"] = "BOTTOMElvUIParentBOTTOM27864" + + E.db.actionbar.bar1.backdrop = false; + E.db.actionbar.bar3.backdrop = false; + E.db.actionbar.bar5.backdrop = false; + E.db.actionbar.bar1.buttonspacing = 2; + E.db.actionbar.bar2.buttonspacing = 2; + E.db.actionbar.bar3.buttonspacing = 2; + E.db.actionbar.bar4.buttonspacing = 2; + E.db.actionbar.bar5.buttonspacing = 2; + E.db.actionbar.barPet.buttonspacing = 2; + E.db.actionbar.stanceBar.buttonspacing = 2; + else + E.db.actionbar.bar1.backdrop = true; + E.db.actionbar.bar3.backdrop = true; + E.db.actionbar.bar5.backdrop = true; + E.db.actionbar.bar1.buttonspacing = 4; + E.db.actionbar.bar2.buttonspacing = 4; + E.db.actionbar.bar3.buttonspacing = 4; + E.db.actionbar.bar4.buttonspacing = 4; + E.db.actionbar.bar5.buttonspacing = 4; + E.db.actionbar.barPet.buttonspacing = 4; + E.db.actionbar.stanceBar.buttonspacing = 4; + end + end + + if InstallStepComplete and not noMsg then + InstallStepComplete.message = L["Pixel Perfect Set"] + InstallStepComplete:Show() + E:UpdateAll(true) + end + + + E.PixelMode = enabled +end + +function E:SetupTheme(theme, noDisplayMsg) + local classColor = RAID_CLASS_COLORS[E.myclass] + E.private.theme = theme + + + --Set colors + if theme == "classic" then + E.db.general.bordercolor = E:GetColor(.31, .31, .31) + E.db.general.backdropcolor = E:GetColor(.1, .1, .1) + E.db.general.backdropfadecolor = E:GetColor(.06, .06, .06, .8) + + E.db.unitframe.colors.healthclass = false + E.db.unitframe.colors.health = E:GetColor(.31, .31, .31) + E.db.unitframe.colors.auraBarBuff = E:GetColor(.31, .31, .31) + E.db.unitframe.colors.castColor = E:GetColor(.31, .31, .31) + + elseif theme == "class" then + E.db.general.bordercolor = E:GetColor(.31, .31, .31) + E.db.general.backdropcolor = E:GetColor(.1, .1, .1) + E.db.general.backdropfadecolor = E:GetColor(.06, .06, .06, .8) + E.db.unitframe.colors.auraBarBuff = E:GetColor(classColor.r, classColor.b, classColor.g) + E.db.unitframe.colors.healthclass = true + E.db.unitframe.colors.castColor = E:GetColor(classColor.r, classColor.b, classColor.g) + else + E.db.general.bordercolor = E:GetColor(.1, .1, .1) + E.db.general.backdropcolor = E:GetColor(.1, .1, .1) + E.db.general.backdropfadecolor = E:GetColor(.054, .054, .054, .8) + E.db.unitframe.colors.auraBarBuff = E:GetColor(.1, .1, .1) + E.db.unitframe.colors.healthclass = false + E.db.unitframe.colors.health = E:GetColor(.1, .1, .1) + E.db.unitframe.colors.castColor = E:GetColor(.1, .1, .1) + end + + --Value Color + if theme == "class" then + E.db.general.valuecolor = E:GetColor(classColor.r, classColor.b, classColor.g) + else + E.db.general.valuecolor = E:GetColor(.09, .819, .513) + end + + if not noDisplayMsg then + E:UpdateAll(true) + end + + if InstallStatus then + InstallStatus:SetStatusBarColor(unpack(E['media'].rgbvaluecolor)) + + if InstallStepComplete and not noDisplayMsg then + InstallStepComplete.message = L["Theme Set"] + InstallStepComplete:Show() + end + end +end + +function E:SetupResolution(noDataReset) + if not noDataReset then + E:ResetMovers('') + end + + if self == 'low' then + if not E.db.movers then E.db.movers = {}; end + if not noDataReset then + E.db.chat.panelWidth = 400 + E.db.chat.panelHeight = 180 + + E:CopyTable(E.db.actionbar, P.actionbar) + + E.db.actionbar.bar1.heightMult = 2; + E.db.actionbar.bar2.enabled = true; + E.db.actionbar.bar3.enabled = false; + E.db.actionbar.bar5.enabled = false; + end + + if not noDataReset then + E.db.auras.wrapAfter = 10; + end + E.db.general.reputation.width = 400 + E.db.general.experience.width = 400 + E.db.movers.ElvAB_2 = "CENTERElvUIParentBOTTOM056.18" + + if not noDataReset then + E:CopyTable(E.db.unitframe.units, P.unitframe.units) + + E.db.unitframe.fontSize = 10 + + E.db.unitframe.units.player.width = 200; + E.db.unitframe.units.player.castbar.width = 200; + E.db.unitframe.units.player.classbar.fill = 'fill'; + E.db.unitframe.units.player.health.text_format = "[healthcolor][health:current]" + + E.db.unitframe.units.target.width = 200; + E.db.unitframe.units.target.castbar.width = 200; + E.db.unitframe.units.target.health.text_format = '[healthcolor][health:current]' + + E.db.unitframe.units.pet.power.enable = false; + E.db.unitframe.units.pet.width = 200; + E.db.unitframe.units.pet.height = 26; + + E.db.unitframe.units.targettarget.debuffs.enable = false; + E.db.unitframe.units.targettarget.power.enable = false; + E.db.unitframe.units.targettarget.width = 200; + E.db.unitframe.units.targettarget.height = 26; + + E.db.unitframe.units.boss.width = 200; + E.db.unitframe.units.boss.castbar.width = 200; + E.db.unitframe.units.arena.width = 200; + E.db.unitframe.units.arena.castbar.width = 200; + end + + local isPixel = E.private.general.pixelPerfect + local xOffset = isPixel and 103 or 106; + local yOffset = isPixel and 125 or 135; + local yOffsetSmall = isPixel and 76 or 80; + + E.db.movers.ElvUF_PlayerMover = "BOTTOMElvUIParentBOTTOM"..-xOffset..""..yOffset + E.db.movers.ElvUF_TargetTargetMover = "BOTTOMElvUIParentBOTTOM"..xOffset..""..yOffsetSmall + E.db.movers.ElvUF_TargetMover = "BOTTOMElvUIParentBOTTOM"..xOffset..""..yOffset + E.db.movers.ElvUF_PetMover = "BOTTOMElvUIParentBOTTOM"..-xOffset..""..yOffsetSmall + E.db.movers.ElvUF_FocusMover = "BOTTOMElvUIParentBOTTOM310332" + + E.db.lowresolutionset = true; + elseif not noDataReset then + E.db.chat.panelWidth = P.chat.panelWidth + E.db.chat.panelHeight = P.chat.panelHeight + + E:CopyTable(E.db.actionbar, P.actionbar) + E:CopyTable(E.db.unitframe.units, P.unitframe.units) + E:SetupPixelPerfect(E.PixelMode, true) + E.db.auras.wrapAfter = P.auras.wrapAfter; + E.db.general.reputation.width = P.general.reputation.width + E.db.general.experience.width = P.general.experience.width + + E.db.lowresolutionset = nil; + end + + if not noDataReset and E.private.theme then + E:SetupTheme(E.private.theme, true) + end + + E:UpdateAll(true) + + if InstallStepComplete and not noDataReset then + InstallStepComplete.message = L["Resolution Style Set"] + InstallStepComplete:Show() + end +end + +function E:SetupLayout(layout, noDataReset) + --Unitframes + if not noDataReset then + E:CopyTable(E.db.unitframe.units, P.unitframe.units) + E:CopyTable(E.db.sle.combatico, P.sle.combatico) + E.db.sle.powtext = false + end + if layout == 'healer' then + if not IsAddOnLoaded('Clique') then + E:Print(L['Using the healer layout it is highly recommended you download the addon Clique to work side by side with ElvUI.']) + end + + if not noDataReset then + E.db.unitframe.units.party.health.frequentUpdates = true; + E.db.unitframe.units.raid25.health.frequentUpdates = true; + E.db.unitframe.units.raid40.health.frequentUpdates = true; + + E.db.unitframe.units.raid40.height = 36; + E.db.unitframe.units.raid40.health.text = true; + E.db.unitframe.units.raid40.name.position = 'TOP'; + E.db.unitframe.units.raid40.roleIcon.enable = true; + E.db.unitframe.units.boss.width = 200; + E.db.unitframe.units.boss.castbar.width = 200; + E.db.unitframe.units.arena.width = 200; + E.db.unitframe.units.arena.castbar.width = 200; + + E.db.unitframe.units.party.point = 'LEFT'; + E.db.unitframe.units.party.xOffset = 5; + E.db.unitframe.units.party.healPrediction = true; + E.db.unitframe.units.party.columnAnchorPoint = 'LEFT'; + E.db.unitframe.units.party.width = 80; + E.db.unitframe.units.party.height = 52; + E.db.unitframe.units.party.health.text_format = "[healthcolor][health:deficit]" + E.db.unitframe.units.party.health.position = 'BOTTOM'; + E.db.unitframe.units.party.health.orientation = 'VERTICAL'; + E.db.unitframe.units.party.name.position = 'TOP'; + E.db.unitframe.units.party.name.text_format = "[namecolor][name:medium]"; + E.db.unitframe.units.party.debuffs.anchorPoint = 'BOTTOMLEFT'; + E.db.unitframe.units.party.debuffs.initialAnchor = 'TOPLEFT'; + E.db.unitframe.units.party.debuffs.useFilter = 'Blacklist'; + E.db.unitframe.units.party.debuffs.sizeOverride = 0; + E.db.unitframe.units.party.petsGroup.enable = true; + E.db.unitframe.units.party.petsGroup.width = 80; + E.db.unitframe.units.party.petsGroup.initialAnchor = 'BOTTOM'; + E.db.unitframe.units.party.petsGroup.anchorPoint = 'TOP'; + E.db.unitframe.units.party.petsGroup.xOffset = 0; + E.db.unitframe.units.party.petsGroup.yOffset = 1; + E.db.unitframe.units.party.targetsGroup.enable = false; + E.db.unitframe.units.party.targetsGroup.width = 80; + E.db.unitframe.units.party.targetsGroup.initialAnchor = 'BOTTOM'; + E.db.unitframe.units.party.targetsGroup.anchorPoint = 'TOP'; + E.db.unitframe.units.party.targetsGroup.xOffset = 0; + E.db.unitframe.units.party.targetsGroup.yOffset = 1; + + E.db.unitframe.units.raid25.healPrediction = true; + E.db.unitframe.units.raid25.health.orientation = 'VERTICAL'; + + E.db.unitframe.units.raid40.healPrediction = true; + E.db.unitframe.units.raid40.health.orientation = 'VERTICAL'; + end + + if not E.db.movers then E.db.movers = {}; end + if E.db.lowresolutionset then + E.db.movers.ElvUF_PlayerMover = "BOTTOMElvUIParentBOTTOM-305242" + E.db.movers.ElvUF_TargetMover = "BOTTOMElvUIParentBOTTOM305242" + E.db.movers.ElvUF_Raid40Mover = "BOTTOMElvUIParentBOTTOM080" + E.db.movers.ElvUF_Raid25Mover = "BOTTOMElvUIParentBOTTOM080" + E.db.movers.ElvUF_Raid10Mover = "BOTTOMElvUIParentBOTTOM080" + E.db.movers.ElvUF_TargetTargetMover = "BOTTOMElvUIParentBOTTOM305187" + E.db.movers.ElvUF_PartyMover = "BOTTOMElvUIParentBOTTOM0104" + E.db.movers.ElvUF_PetMover = "BOTTOMElvUIParentBOTTOM-305187" + E.db.movers.ElvUF_FocusMover = "BOTTOMElvUIParentBOTTOM310432" + + else + E.db.movers.ElvUF_PlayerMover = "BOTTOMLEFTElvUIParentBOTTOMLEFT464242" + E.db.movers.ElvUF_TargetMover = "BOTTOMRIGHTElvUIParentBOTTOMRIGHT-464242" + E.db.movers.ElvUF_Raid40Mover = "BOTTOMElvUIParentBOTTOM050" + E.db.movers.ElvUF_Raid25Mover = "BOTTOMElvUIParentBOTTOM050" + E.db.movers.ElvUF_Raid10Mover = "BOTTOMElvUIParentBOTTOM050" + E.db.movers.ElvUF_TargetTargetMover = "BOTTOMRIGHTElvUIParentBOTTOMRIGHT-464151" + E.db.movers.ElvUF_PartyMover = "BOTTOMElvUIParentBOTTOM074" + E.db.movers.ElvUF_PetMover = "BOTTOMLEFTElvUIParentBOTTOMLEFT464151" + E.db.movers.ElvUF_FocusMover = "BOTTOMElvUIParentBOTTOM280332" + end + elseif E.db.lowresolutionset then + if not E.db.movers then E.db.movers = {}; end + E.db.movers.ElvUF_PlayerMover = "BOTTOMElvUIParentBOTTOM-106135" + E.db.movers.ElvUF_TargetMover = "BOTTOMElvUIParentBOTTOM106135" + E.db.movers.ElvUF_TargetTargetMover = "BOTTOMElvUIParentBOTTOM10680" + E.db.movers.ElvUF_PetMover = "BOTTOMElvUIParentBOTTOM-10680" + E.db.movers.ElvUF_FocusMover = "BOTTOMElvUIParentBOTTOM310332" + else + if not noDataReset then + E:ResetMovers('') + E:SetupPixelPerfect(E.PixelMode, true) + end + end + + if E.db.lowresolutionset and not noDataReset then + E.db.unitframe.units.player.width = 200; + E.db.unitframe.units.player.castbar.width = 200; + E.db.unitframe.units.player.classbar.fill = 'fill'; + + E.db.unitframe.units.target.width = 200; + E.db.unitframe.units.target.castbar.width = 200; + + E.db.unitframe.units.pet.power.enable = false; + E.db.unitframe.units.pet.width = 200; + E.db.unitframe.units.pet.height = 26; + + E.db.unitframe.units.targettarget.debuffs.enable = false; + E.db.unitframe.units.targettarget.power.enable = false; + E.db.unitframe.units.targettarget.width = 200; + E.db.unitframe.units.targettarget.height = 26; + + E.db.unitframe.units.boss.width = 200; + E.db.unitframe.units.boss.castbar.width = 200; + E.db.unitframe.units.arena.width = 200; + E.db.unitframe.units.arena.castbar.width = 200; + end + + if not E.db.lowresolutionset and (layout == 'dpsCaster' or (layout == 'dpsMelee' and E.myclass == 'HUNTER')) then + if not E.db.movers then E.db.movers = {}; end + E.db.movers.ElvUF_PlayerCastbarMover = "BOTTOMElvUIParentBOTTOM0180" + --[[elseif not E.db.lowresolutionset and layout == 'tank' then --Not sure if i want to keep this. + if not E.db.movers then E.db.movers = {}; end + E.db.movers.ElvUF_TargetCastbarMover = "BOTTOMElvUIParentBOTTOM0180"]] + end + + --Datatexts + if not noDataReset then + E:CopyTable(E.db.datatexts.panels, P.datatexts.panels) + E:CopyTable(E.db.sle.datatext, P.sle.datatext) + if layout == 'tank' then + E.db.datatexts.panels.LeftChatDataPanel.left = 'Armor'; + E.db.datatexts.panels.LeftChatDataPanel.right = 'Avoidance'; + elseif layout == 'healer' or layout == 'dpsCaster' then + E.db.datatexts.panels.LeftChatDataPanel.left = 'Spell/Heal Power'; + E.db.datatexts.panels.LeftChatDataPanel.right = 'Haste'; + else + E.db.datatexts.panels.LeftChatDataPanel.left = 'Attack Power'; + E.db.datatexts.panels.LeftChatDataPanel.right = 'Crit Chance'; + end + + if InstallStepComplete then + InstallStepComplete.message = L["Layout Set"] + InstallStepComplete:Show() + end + end + + E.db.layoutSet = layout + + if not noDataReset and E.private.theme then + E:SetupTheme(E.private.theme, true) + end + + if not noDataReset then + E:CopyTable(E.db.sle.marks, P.sle.marks) + E:CopyTable(E.db.sle.backgrounds, P.sle.backgrounds) + E:CopyTable(E.db.sle.uibuttons, P.sle.uibuttons) + end + + E:UpdateAll(true) + local DT = E:GetModule('DataTexts') + DT:LoadDataTexts() +end + + +local function SetupAuras(style) + E:CopyTable(E.db.unitframe.units.player.buffs, P.unitframe.units.player.buffs) + E:CopyTable(E.db.unitframe.units.player.debuffs, P.unitframe.units.player.debuffs) + E:CopyTable(E.db.unitframe.units.player.aurabar, P.unitframe.units.player.aurabar) + + E:CopyTable(E.db.unitframe.units.target.buffs, P.unitframe.units.target.buffs) + E:CopyTable(E.db.unitframe.units.target.debuffs, P.unitframe.units.target.debuffs) + E:CopyTable(E.db.unitframe.units.target.aurabar, P.unitframe.units.target.aurabar) + E.db.unitframe.units.target.smartAuraDisplay = P.unitframe.units.target.smartAuraDisplay + + E:CopyTable(E.db.unitframe.units.focus.buffs, P.unitframe.units.focus.buffs) + E:CopyTable(E.db.unitframe.units.focus.debuffs, P.unitframe.units.focus.debuffs) + E:CopyTable(E.db.unitframe.units.focus.aurabar, P.unitframe.units.focus.aurabar) + E.db.unitframe.units.focus.smartAuraDisplay = P.unitframe.units.focus.smartAuraDisplay + + if not style then + --PLAYER + E.db.unitframe.units.player.buffs.enable = true; + E.db.unitframe.units.player.buffs.attachTo = 'FRAME'; + E.db.unitframe.units.player.buffs.noDuration = false; + + E.db.unitframe.units.player.debuffs.attachTo = 'BUFFS'; + + E.db.unitframe.units.player.aurabar.enable = false; + + --TARGET + E.db.unitframe.units.target.smartAuraDisplay = 'DISABLED'; + E.db.unitframe.units.target.debuffs.enable = true; + E.db.unitframe.units.target.aurabar.enable = false; + elseif style == 'integrated' then + --seriosly is this fucking hard?? + E.db.unitframe.units.target.smartAuraDisplay = 'SHOW_DEBUFFS_ON_FRIENDLIES'; + E.db.unitframe.units.target.buffs.playerOnly = {friendly = true, enemy = false}; + E.db.unitframe.units.target.debuffs.enable = false; + E.db.unitframe.units.target.aurabar.attachTo = 'BUFFS'; + end + + E:GetModule('UnitFrames'):Update_AllFrames() + if InstallStepComplete then + InstallStepComplete.message = L["Auras Set"] + InstallStepComplete:Show() + end +end + + +function E:DarthSetup() --The function to switch from classic ElvUI settings to Darth's + InstallStepComplete.message = L["Darth's Defaults Set"] + InstallStepComplete:Show() + if not E.db.movers then E.db.movers = {}; end + + layout = E.db.layoutSet --To know if some sort of layout was choosed before + + --General options-- + E.db.general.stickyFrames = false + E.db.general.autoRepair = "PLAYER" + E.db.general.vendorGrays = true + E.db.general.fontsize = 10 + E.db.general.minimap.locationText = 'SHOW' + E.db.general.experience.textFormat = 'CURPERC' + E.db.general.experience.textSize = 10 + E.db.general.experience.height = 12 + E.db.general.reputation.textFormat = 'CURMAX' + E.db.general.reputation.textSize = 10 + E.db.general.reputation.height = 12 + E.db.general.threat.enable = false + E.db.general.totems.spacing = 2 + E.db.general.totems.growthDirection = "HORIZONTAL" + E.db.general.totems.size = 24 + E.db.general.bottomPanel = false + + --Bags-- + E.db.bags.bagSize = 22 + E.db.bags.bankSize = 22 + E.db.bags.sortInverted = false + E.db.bags.alignToChat = false + E.db.bags.bagWidth = 633 + E.db.bags.bankWidth = 633 + E.db.bags.yOffset = 221 + E.db.bags.currencyFormat = "ICON" + E.db.bags.growthDirection = "HORIZONTAL" + + --NamePlate-- + E.db.nameplate.healthtext = 'CURRENT_PERCENT' + E.db.nameplate.lowHealthWarning = 'NONE' + E.db.nameplate.lowHealthWarningThreshold = .20 + E.db.nameplate.width = 112 + E.db.nameplate.fontSize = 8 + E.db.nameplate.fontOutline = "OUTLINE" + E.db.nameplate.font = "ElvUI Font" + E.db.nameplate.height = 8 + E.db.nameplate.auraFont = "ElvUI Font" + E.db.nameplate.auraFontOutline = "OUTLINE" + + --Auras-- + E.db.auras.font = "ElvUI Font" + E.db.auras.fontOutline = "OUTLINE" + E.db.auras.wrapAfter = 18 + E.db.sle.castername = true + + --Chat-- + E.db.chat.editboxhistory = 10 + E.db.chat.emotionIcons = false + E.db.chat.whisperSound = 'None' + E.db.chat.panelHeight = 227 + E.db.chat.panelTabBackdrop = false + if E.db.lowresolutionset then + E.db.chat.panelWidth = 400 + else + E.db.chat.panelWidth = 446 + end + E.db.chat.timeStampFormat = "%H:%M:%S " + + --Datatexts-- + do + E.db.datatexts.font = "ElvUI Pixel" + E.db.datatexts.fontSize = 11 + E.db.datatexts.time24 = true + E.db.sle.datatext.top.enabled = true + E.db.sle.datatext.bottom.enabled = true + if E.db.lowresolutionset then + E.db.sle.datatext.dp1.enabled = false + E.db.sle.datatext.dp2.enabled = false + E.db.sle.datatext.dp3.enabled = false + E.db.sle.datatext.dp4.enabled = false + E.db.sle.datatext.dp5.enabled = false + E.db.sle.datatext.dp6.enabled = false + E.db.sle.datatext.chatleft.width = 384 + E.db.sle.datatext.chatright.width = 384 + E.db.sle.datatext.bottom.width = E.screenwidth/3 + 52 + else + E.db.sle.datatext.dp1.enabled = true + E.db.sle.datatext.dp1.width = E.screenwidth/5 + 1 + E.db.sle.datatext.dp2.enabled = true + E.db.sle.datatext.dp3.enabled = true + E.db.sle.datatext.dp4.enabled = true + E.db.sle.datatext.dp4.width = E.screenwidth/5 + 1 + E.db.sle.datatext.dp5.enabled = true + E.db.sle.datatext.dp5.width = E.screenwidth/4 - 60 + E.db.sle.datatext.dp6.enabled = true + E.db.sle.datatext.dp6.width = E.screenwidth/4 - 60 + E.db.sle.datatext.chatleft.width = 430 + E.db.sle.datatext.chatright.width = 430 + E.db.sle.datatext.bottom.width = E.screenwidth/10 + E.db.sle.datatext.top.width = E.screenwidth/5 + 2 + end + + if E.db.lowresolutionset then + E.db.datatexts.panels.LeftChatDataPanel.left = 'Bags'; + E.db.datatexts.panels.LeftChatDataPanel.middle = 'Gold'; + E.db.datatexts.panels.LeftChatDataPanel.right = 'Durability'; + else + E.db.datatexts.panels.LeftChatDataPanel.right = 'Friends'; + E.db.datatexts.panels.LeftChatDataPanel.left = 'Call to Arms'; + E.db.datatexts.panels.LeftChatDataPanel.middle = 'Durability'; + end + E.db.datatexts.panels.LeftMiniPanel = 'Time'; + E.db.datatexts.panels.RightMiniPanel = 'Guild'; + + if layout == 'tank' then + E.db.datatexts.panels.DP_6.left = 'Avoidance'; + E.db.datatexts.panels.DP_6.middle = 'Vengeance'; + E.db.datatexts.panels.DP_6.right = 'Expertise'; + if E.db.lowresolutionset then + E.db.datatexts.panels.RightChatDataPanel.left = 'Avoidance'; + E.db.datatexts.panels.RightChatDataPanel.middle = 'Vengeance'; + E.db.datatexts.panels.RightChatDataPanel.right = 'Expertise'; + else + E.db.datatexts.panels.RightChatDataPanel.left = 'Hit Rating'; + E.db.datatexts.panels.RightChatDataPanel.middle = 'Mastery'; + E.db.datatexts.panels.RightChatDataPanel.right = 'Spec Switch'; + end + E.db.datatexts.panels.DP_5.right = 'Armor'; + elseif layout == 'healer' then + E.db.datatexts.panels.DP_6.left = 'Spell/Heal Power'; + E.db.datatexts.panels.DP_6.middle = 'Haste'; + E.db.datatexts.panels.DP_6.right = 'Crit Chance'; + if E.db.lowresolutionset then + E.db.datatexts.panels.RightChatDataPanel.left = 'Spell/Heal Power'; + E.db.datatexts.panels.RightChatDataPanel.middle = 'Crit Chance'; + E.db.datatexts.panels.RightChatDataPanel.right = 'MP5'; + else + E.db.datatexts.panels.RightChatDataPanel.left = 'MP5'; + E.db.datatexts.panels.RightChatDataPanel.middle = 'Mastery'; + E.db.datatexts.panels.RightChatDataPanel.right = 'Spec Switch'; + end + E.db.datatexts.panels.DP_5.right = 'Armor'; + elseif layout == 'dpsCaster' then + E.db.datatexts.panels.DP_6.left = 'Spell/Heal Power'; + E.db.datatexts.panels.DP_6.middle = 'Haste'; + E.db.datatexts.panels.DP_6.right = 'Crit Chance'; + if E.db.lowresolutionset then + E.db.datatexts.panels.RightChatDataPanel.left = 'Spell/Heal Power'; + E.db.datatexts.panels.RightChatDataPanel.middle = 'Haste'; + E.db.datatexts.panels.RightChatDataPanel.right = 'Crit Chance'; + else + E.db.datatexts.panels.RightChatDataPanel.left = 'Hit Rating'; + E.db.datatexts.panels.RightChatDataPanel.middle = 'Mastery'; + E.db.datatexts.panels.RightChatDataPanel.right = 'Spec Switch'; + end + E.db.datatexts.panels.DP_5.right = 'Armor'; + else + E.db.datatexts.panels.DP_6.left = 'Attack Power'; + E.db.datatexts.panels.DP_6.middle = 'Haste'; + E.db.datatexts.panels.DP_6.right = 'Crit Chance'; + if E.db.lowresolutionset then + E.db.datatexts.panels.RightChatDataPanel.left = 'Attack Power'; + E.db.datatexts.panels.RightChatDataPanel.middle = 'Haste'; + E.db.datatexts.panels.RightChatDataPanel.right = 'Crit Chance'; + else + E.db.datatexts.panels.RightChatDataPanel.left = 'Hit Rating'; + E.db.datatexts.panels.RightChatDataPanel.middle = 'Mastery'; + E.db.datatexts.panels.RightChatDataPanel.right = 'Spec Switch'; + end + E.db.datatexts.panels.DP_5.right = 'Expertise'; + end + end + + --Unitframes-- + do + E.db.unitframe.smoothbars = false + E.db.unitframe.font = "ElvUI Font" + E.db.unitframe.fontsize = 9 + E.db.unitframe.fontOutline = 'OUTLINE' + E.db.unitframe.colors.castColor = { + ["b"] = 0.3098039215686275, + ["g"] = 0.792156862745098, + ["r"] = 0.8274509803921568, + } + UF:Update_AllFrames() + if layout == "healer" then + E.db.unitframe.debuffHighlighting = true + else + E.db.unitframe.debuffHighlighting = false + end + E.db.unitframe.smartRaidFilter = false + E.db.unitframe.colors.healthclass = true + E.db.unitframe.colors.colorhealthbyvalue = false + --Setting player frame + E.db.unitframe.units.player.width = 200 + if layout == "healer" then + E.db.unitframe.units.player.lowmana = 30; + else + E.db.unitframe.units.player.lowmana = 0; + end + E.db.unitframe.units.player.health.position = 'BOTTOMRIGHT'; + E.db.unitframe.units.player.health.text_format = "[healthcolor][health:current-percent:sl]" + E.db.unitframe.units.player.power.text_format = "[powercolor][power:current:sl]"; + E.db.unitframe.units.player.fixTo = "power" + E.db.unitframe.units.player.name.text_format = "[name:medium] [level]"; + E.db.unitframe.units.player.name.position = 'TOPLEFT'; + E.db.unitframe.units.player.pvp.text_format = "||cFFB04F4F[pvptimer]||r" + E.db.unitframe.units.player.pvp.position = "BOTTOMLEFT" + E.db.unitframe.units.player.portrait.enable = true + E.db.unitframe.units.player.portrait.camDistanceScale = 1.5; + E.db.unitframe.units.player.debuffs.enable = false; + E.db.unitframe.units.player.castbar.format = 'CURRENTMAX'; + E.db.unitframe.units.player.castbar.width = 238 + E.db.unitframe.units.player.classbar.fill = 'fill' + E.db.unitframe.units.player.classbar.height = 8 + E.db.unitframe.units.player.aurabar.enable = false + --Setting target frame + E.db.unitframe.units.target.width = 200 + E.db.unitframe.units.target.smartAuraDisplay = "DISABLED" + E.db.unitframe.units.target.hideonnpc = false; + E.db.unitframe.units.target.health.position = 'BOTTOMRIGHT'; + E.db.unitframe.units.target.power.position = 'RIGHT'; + E.db.unitframe.units.target.power.hideonnpc = false; + E.db.unitframe.units.target.power.text_format = "[powercolor][power:current:sl]" + E.db.unitframe.units.target.fixTo = "power" + E.db.unitframe.units.target.name.text_format = "[name:medium] [level] [shortclassification]"; + E.db.unitframe.units.target.name.position = 'TOPLEFT'; + E.db.unitframe.units.target.portrait.enable = true + E.db.unitframe.units.target.portrait.camDistanceScale = 1.5; + E.db.unitframe.units.target.buffs.perrow = 9; + E.db.unitframe.units.target.buffs.numrows = 2; + E.db.unitframe.units.target.buffs.anchorPoint = 'TOPLEFT'; + E.db.unitframe.units.target.buffs.clickThrough = false + E.db.unitframe.units.target.buffs.playerOnly.friendly = false + E.db.unitframe.units.target.buffs.playerOnly.enemy = false + E.db.unitframe.units.target.buffs.useBlacklist.friendly = false + E.db.unitframe.units.target.buffs.useBlacklist.enemy = false + E.db.unitframe.units.target.buffs.useWhitelist.friendly = false + E.db.unitframe.units.target.buffs.useWhitelist.enemy = false + E.db.unitframe.units.target.buffs.noDuration.friendly = false + E.db.unitframe.units.target.buffs.noDuration.enemy = false + E.db.unitframe.units.target.buffs.onlyDispellable.friendly = false + E.db.unitframe.units.target.buffs.onlyDispellable.enemy = false + E.db.unitframe.units.target.debuffs.perrow = 9; + E.db.unitframe.units.target.debuffs.playerOnly.friendly = false + E.db.unitframe.units.target.debuffs.playerOnly.enemy = false + E.db.unitframe.units.target.debuffs.useBlacklist.friendly = false + E.db.unitframe.units.target.debuffs.useBlacklist.enemy = false + E.db.unitframe.units.target.debuffs.useWhitelist.friendly = false + E.db.unitframe.units.target.debuffs.useWhitelist.enemy = false + E.db.unitframe.units.target.debuffs.noDuration.friendly = false + E.db.unitframe.units.target.debuffs.noDuration.enemy = false + E.db.unitframe.units.target.debuffs.onlyDispellable.friendly = false + E.db.unitframe.units.target.debuffs.onlyDispellable.enemy = false + E.db.unitframe.units.target.debuffs.enable = true + E.db.unitframe.units.target.debuffs.clickThrough = false + E.db.unitframe.units.target.castbar.format = 'CURRENTMAX'; + if layout == "healer" then + E.db.unitframe.units.target.castbar.width = 238 + else + E.db.unitframe.units.target.castbar.width = 200 + end + E.db.unitframe.units.target.aurabar.enable = false + --Target of Target + E.db.unitframe.units.targettarget.height = 26 + if layout == "healer" then + E.db.unitframe.units.targettarget.width = 115 + else + E.db.unitframe.units.targettarget.width = 120 + end + E.db.unitframe.units.targettarget.name.text_format = "[name:medium]" + E.db.unitframe.units.targettarget.debuffs.enable = false + --Focus + E.db.unitframe.units.focus.height = 42 + E.db.unitframe.units.focus.width = 179 + E.db.unitframe.units.focus.health.position = 'BOTTOMRIGHT' + E.db.unitframe.units.focus.health.text_format = "[healthcolor][health:current-percent:sl]" + E.db.unitframe.units.focus.power.text_format = "[powercolor][power:current:sl]" + E.db.unitframe.units.focus.fixTo = "power" + E.db.unitframe.units.focus.power.position = "RIGHT" + E.db.unitframe.units.focus.name.text_format = "[name:medium]" + E.db.unitframe.units.focus.name.position = 'TOPLEFT' + E.db.unitframe.units.focus.debuffs.perrow = 8 + E.db.unitframe.units.focus.debuffs.anchorPoint = "TOPLEFT" + E.db.unitframe.units.focus.castbar.format = 'CURRENTMAX' + E.db.unitframe.units.focus.castbar.width = 179 + --Focus Target + E.db.unitframe.units.focustarget.name.text_format = "[name:medium]" + E.db.unitframe.units.focustarget.enable = true + E.db.unitframe.units.focustarget.height = 34 + E.db.unitframe.units.focustarget.width = 179 + --Pet + E.db.unitframe.units.pet.name.text_format = "[name:medium]" + if layout == "healer" then + E.db.unitframe.units.pet.width = 115 + else + E.db.unitframe.units.pet.width = 128 + end + --Pet Target + E.db.unitframe.units.pettarget.name.text_format = "[name:medium]" + E.db.unitframe.units.pettarget.enable = true + if layout == "healer" then + E.db.unitframe.units.pettarget.width = 115 + else + E.db.unitframe.units.pettarget.width = 119 + end + --Party + if layout == "healer" then + E.db.unitframe.units.party.point = "LEFT" + E.db.unitframe.units.party.xOffset = 5 + E.db.unitframe.units.party.debuffs.perrow = 3 + E.db.unitframe.units.party.debuffs.anchorPoint = "BOTTOMLEFT" + E.db.unitframe.units.party.debuffs.useFilter = "Blacklist" + E.db.unitframe.units.party.debuffs.initialAnchor = "TOPLEFT" + E.db.unitframe.units.party.roleIcon.position = "RIGHT" + E.db.unitframe.units.party.width = 80 + E.db.unitframe.units.party.height = 52 + E.db.unitframe.units.party.healPrediction = true + E.db.unitframe.units.party.health.text_format = "[healthcolor][health:deficit]" + E.db.unitframe.units.party.health.position = "CENTER" + E.db.unitframe.units.party.health.frequentUpdates = true + E.db.unitframe.units.party.health.orientation = "VERTICAL" + else + E.db.unitframe.units.party.debuffs.perrow = 4 + E.db.unitframe.units.party.roleIcon.position = "TOPRIGHT" + E.db.unitframe.units.party.health.position = "BOTTOMLEFT" + end + E.db.unitframe.units.party.xOffset = 1 + E.db.unitframe.units.party.yOffset = -1 + E.db.unitframe.units.party.columnSpacing = 1 + E.db.unitframe.units.party.debuffs.sizeOverride = 26 + E.db.unitframe.units.party.buffIndicator.colorIcons = false + E.db.unitframe.units.party.power.height = 8 + E.db.unitframe.units.party.power.text_format = "" + E.db.unitframe.units.party.name.position = "TOP" + E.db.unitframe.units.party.name.text_format = "[name:medium] [difficultycolor][smartlevel]" + --Raid 10 + if layout == "healer" then + E.db.unitframe.units.raid10.health.frequentUpdates = true + E.db.unitframe.units.raid10.health.text_format = "[healthcolor][health:dificit]" + E.db.unitframe.units.raid10.health.orientation = "VERTICAL" + E.db.unitframe.units.raid10.health.position = "CENTER" + else + E.db.unitframe.units.raid10.health.text_format = "[healthcolor][health:current]" + E.db.unitframe.units.raid10.columnAnchorPoint = "LEFT" + E.db.unitframe.units.raid10.point = "TOP" + end + E.db.unitframe.units.raid10.xOffset = 1 + E.db.unitframe.units.raid10.yOffset = -1 + E.db.unitframe.units.raid10.columnSpacing = 1 + E.db.unitframe.units.raid10.name.text_format = "[name:medium]" + E.db.unitframe.units.raid10.buffIndicator.colorIcons = false + E.db.unitframe.units.raid10.rdebuffs.size = 22 + E.db.unitframe.units.raid10.power.height = 8 + E.db.unitframe.units.raid10.power.text_format = "" + E.db.unitframe.units.raid10.health.position = "BOTTOMLEFT" + --Raid 25 + if layout == "healer" then + E.db.unitframe.units.raid25.health.text_format = "[healthcolor][health:deficit]" + E.db.unitframe.units.raid25.health.frequentUpdates = true + E.db.unitframe.units.raid25.health.orientation = "VERTICAL" + E.db.unitframe.units.raid25.health.position = "CENTER" + E.db.unitframe.units.raid25.height = 36 + else + E.db.unitframe.units.raid25.point = "TOP" + E.db.unitframe.units.raid25.columnAnchorPoint = "LEFT" + E.db.unitframe.units.raid25.health.text_format = "" + end + E.db.unitframe.units.raid25.xOffset = 1 + E.db.unitframe.units.raid25.yOffset = -1 + E.db.unitframe.units.raid25.columnSpacing = 1 + E.db.unitframe.units.raid25.buffIndicator.colorIcons = false + E.db.unitframe.units.raid25.name.text_format = "[name:medium]" + E.db.unitframe.units.raid25.rdebuffs.size = 22 + E.db.unitframe.units.raid25.power.height = 8 + E.db.unitframe.units.raid25.power.text_format = "" + --Raid 40 + if layout == "healer" then + E.db.unitframe.units.raid40.health.frequentUpdates = true + E.db.unitframe.units.raid40.health.text_format = "" + E.db.unitframe.units.raid40.health.orientation = "VERTICAL" + else + E.db.unitframe.units.raid40.health.text_format = "" + end + E.db.unitframe.units.raid40.height = 26 + E.db.unitframe.units.raid40.xOffset = 1 + E.db.unitframe.units.raid40.yOffset = -1 + E.db.unitframe.units.raid40.columnSpacing = 1 + E.db.unitframe.units.raid40.name.text_format = "[name:short]" + E.db.unitframe.units.raid40.buffIndicator.colorIcons = false + + --Tank + if layout == "healer" then + E.db.unitframe.units.tank.enable = true + E.db.unitframe.units.tank.targetsGroup.enable = false + E.db.unitframe.units.tank.height = 24 + else + E.db.unitframe.units.tank.enable = false + end + --Assist + E.db.unitframe.units.assist.enable = false + + --Arena + E.db.unitframe.units.arena.width = 200 + E.db.unitframe.units.arena.height = 40 + E.db.unitframe.units.arena.growthDirection = 'DOWN' + E.db.unitframe.units.arena.health.position = 'BOTTOMRIGHT' + E.db.unitframe.units.arena.health.text_format = "[healthcolor][health:current-percent:sl]" + E.db.unitframe.units.arena.power.text_format = "[powercolor][power:current:sl]" + E.db.unitframe.units.arena.fixTo = "power" + E.db.unitframe.units.arena.name.text_format = "[name:long]" + E.db.unitframe.units.arena.name.position = 'TOPLEFT' + E.db.unitframe.units.arena.buffs.enable = false + E.db.unitframe.units.arena.debuffs.enable = false + E.db.unitframe.units.arena.castbar.format = 'CURRENTMAX' + E.db.unitframe.units.arena.castbar.height = 15 + E.db.unitframe.units.arena.castbar.width = 200 + E.db.unitframe.units.arena.castbar.color = { + ["r"] = 0.8274509803921568, + ["g"] = 0.792156862745098, + ["b"] = 0.3098039215686275, + } + --Boss + E.db.unitframe.units.boss.width = 200 + E.db.unitframe.units.boss.height = 40 + E.db.unitframe.units.boss.growthDirection = 'DOWN' + E.db.unitframe.units.boss.health.position = 'BOTTOMRIGHT' + E.db.unitframe.units.boss.health.text_format = "[healthcolor][health:current-percent]" + E.db.unitframe.units.boss.power.height = 10 + E.db.unitframe.units.boss.power.text_format = "[powercolor][power:current:sl]" + E.db.unitframe.units.boss.fixTo = "power" + E.db.unitframe.units.boss.name.text_format = "[name:long]" + E.db.unitframe.units.boss.name.position = 'TOPLEFT' + E.db.unitframe.units.boss.buffs.enable = false + E.db.unitframe.units.boss.debuffs.enable = false + E.db.unitframe.units.boss.castbar.format = 'CURRENTMAX' + E.db.unitframe.units.boss.castbar.height = 15 + E.db.unitframe.units.boss.castbar.width = 200 + E.db.unitframe.units.boss.castbar.color = { + ["r"] = 0.8274509803921568, + ["g"] = 0.792156862745098, + ["b"] = 0.3098039215686275, + } + --Power text + E.db.sle.powtext = true + + end + + --Actionbars + do + E.db.actionbar.hotkeytext = false + E.db.actionbar.keyDown = false + E.db.actionbar.bar1.point = "TOPLEFT" + E.db.actionbar.bar1.buttonsPerRow = 3 + E.db.actionbar.bar1.buttonsize = 26 + E.db.actionbar.bar1.backdrop = true + E.db.actionbar.bar2.enabled = true + E.db.actionbar.bar2.point = "TOPLEFT" + E.db.actionbar.bar2.backdrop = true + E.db.actionbar.bar2.buttonsPerRow = 3 + E.db.actionbar.bar2.buttonsize = 26 + E.db.actionbar.bar2.visibility = "[petbattle] hide; show" + E.db.actionbar.bar3.point = "TOPLEFT" + E.db.actionbar.bar3.buttons = 12 + E.db.actionbar.bar3.buttonsPerRow = 3 + E.db.actionbar.bar3.visibility = "[petbattle] hide; show" + E.db.actionbar.bar3.buttonsize = 26 + E.db.actionbar.bar3.backdrop = true + E.db.actionbar.bar4.enabled = false + --E.db.actionbar.bar5.enabled = true + E.db.actionbar.bar5.buttons = 12 + E.db.actionbar.bar5.buttonspacing = 2 + E.db.actionbar.bar5.mouseover = true + E.db.actionbar.bar5.buttonsize = 24 + E.db.actionbar.bar5.backdrop = true + E.db.actionbar.microbar.enabled = true + E.db.actionbar.microbar.buttonsPerRow = 2 + E.db.actionbar.microbar.alpha = 0.2 + E.db.actionbar.stanceBar.buttonspacing = 2 + E.db.actionbar.stanceBar.backdrop = true + E.db.actionbar.stanceBar.buttonsPerRow = 1 + E.db.actionbar.stanceBar.buttonsize = 22 + E.db.actionbar.barPet.point = "TOPLEFT" + E.db.actionbar.barPet.buttonspacing = 1 + E.db.actionbar.barPet.backdrop = false + E.db.actionbar.barPet.buttonsPerRow = 5 + E.db.actionbar.barPet.buttonsize = 20 + end + + --Raid marks-- + E.db.sle.marks.growth = "LEFT" + + --Background Frames-- + E.db.sle.backgrounds.right.enabled = true + E.db.sle.backgrounds.right.pethide = false + E.db.sle.backgrounds.right.xoffset = 70 + E.db.sle.backgrounds.right.yoffset = -2 + E.db.sle.backgrounds.left.enabled = true + E.db.sle.backgrounds.left.pethide = false + E.db.sle.backgrounds.left.xoffset = -70 + E.db.sle.backgrounds.left.yoffset = -2 + + --Exp/Rep Bars-- + E.db.sle.exprep.explong = true + E.db.sle.exprep.replong = true + + --Combat icon-- + E.db.sle.combatico.pos = 'TOPRIGHT' + + --Loot History-- + E.db.sle.lootwin = true + E.db.sle.lootalpha = 0.5 + + --LFR-- + E.db.datatexts.lfrshow = true + + --Errors-- + E.db.sle.errors = true + + --UI Buttons-- + E.db.sle.uibuttons.enable = true + + --Moving stuff-- + do + if layout == "healer" then + E.db.movers.ElvUF_PlayerMover = "BOTTOMElvUIParentBOTTOM-313245" + E.db.movers.ElvUF_PlayerCastbarMover = "BOTTOMElvUIParentBOTTOM0177" + E.db.movers.ElvUF_TargetMover = "BOTTOMElvUIParentBOTTOM313245" + E.db.movers.ElvUF_TargetCastbarMover = "BOTTOMElvUIParentBOTTOM0196" + E.db.movers.ElvUF_TargetTargetMover = "BOTTOMElvUIParentBOTTOM271220" + E.db.movers.ElvUF_PetMover = "BOTTOMElvUIParentBOTTOM-270210" + E.db.movers.ElvUF_PetTargetMover = "BOTTOMElvUIParentBOTTOM-270185" + E.db.movers.PetAB = "BOTTOMElvUIParentBOTTOM-275143" + E.db.movers.TotemBarMover = "BOTTOMLEFTElvUIParentBOTTOMLEFT547298" + E.db.movers.TempEnchantMover = "BOTTOMElvUIParentBOTTOM-243309" + E.db.movers.ElvUF_PartyMover = "BOTTOMElvUIParentBOTTOM0251" + E.db.movers.ElvUF_Raid10Mover = "BOTTOMElvUIParentBOTTOM0215" + E.db.movers.ElvUF_Raid25Mover = "BOTTOMElvUIParentBOTTOM0215" + E.db.movers.ElvUF_Raid40Mover = "BOTTOMElvUIParentBOTTOM0215" + E.db.movers.ElvUF_TankMover = "BOTTOMLEFTElvUIParentBOTTOMLEFT428245" + E.db.movers.BossButton = "BOTTOMLEFTElvUIParentBOTTOMLEFT326268" + else + E.db.movers.ElvUF_PlayerMover = "BOTTOMElvUIParentBOTTOM-228192" + E.db.movers.ElvUF_PlayerCastbarMover = "BOTTOMElvUIParentBOTTOM0194" + E.db.movers.ElvUF_TargetMover = "BOTTOMElvUIParentBOTTOM228192" + E.db.movers.ElvUF_TargetCastbarMover = "BOTTOMElvUIParentBOTTOM228169" + E.db.movers.ElvUF_TargetTargetMover = "BOTTOMRIGHTUIParentBOTTOMRIGHT-835169" + E.db.movers.ElvUF_PetMover = "BOTTOMElvUIParentBOTTOM-264157" + E.db.movers.ElvUF_PetTargetMover = "BOTTOMLEFTUIParentBOTTOMLEFT835169" + E.db.movers.PetAB = "BOTTOMElvUIParentBOTTOM-275115" + E.db.movers.TotemBarMover = "BOTTOMElvUIParentBOTTOM-275245" + E.db.movers.TempEnchantMover = "BOTTOMElvUIParentBOTTOM-158255" + E.db.movers.ElvUF_PartyMover = "BOTTOMLEFTElvUIParentBOTTOMLEFT0245" + E.db.movers.ElvUF_Raid10Mover = "BOTTOMLEFTElvUIParentBOTTOMLEFT0245" + E.db.movers.ElvUF_Raid25Mover = "BOTTOMLEFTElvUIParentBOTTOMLEFT0245" + E.db.movers.ElvUF_Raid40Mover = "BOTTOMLEFTElvUIParentBOTTOMLEFT0245" + E.db.movers.BossButton = "BOTTOMElvUIParentBOTTOM0237" + end + E.db.movers.ElvAB_1 = "BOTTOMElvUIParentBOTTOM019" + E.db.movers.ElvAB_2 = "BOTTOMElvUIParentBOTTOM8519" + E.db.movers.ElvAB_3 = "BOTTOMElvUIParentBOTTOM-8519" + E.db.movers.ElvAB_4 = "TOPRIGHTUIParentTOPRIGHT-311-319" + E.db.movers.ElvAB_5 = "BOTTOMElvUIParentBOTTOM-24919" + E.db.movers.MinimapMover = "TOPRIGHTElvUIParentTOPRIGHT2-18" + E.db.movers.UIBFrameMover = "TOPLEFTElvUIParentTOPLEFT0-451" + E.db.movers.WatchFrameMover = "TOPRIGHTUIParentTOPRIGHT-237-231" + E.db.movers.BossHeaderMover = "TOPRIGHTElvUIParentTOPRIGHT-1-217" + E.db.movers.ArenaHeaderMover = "TOPRIGHTElvUIParentTOPRIGHT-1-217" + E.db.movers.PetBattleABMover = "BOTTOMElvUIParentBOTTOM019" + E.db.movers.ShiftAB = "BOTTOMElvUIParentBOTTOM-14019" + if UnitLevel('player') == 90 then + E.db.movers.ExperienceBarMover = "TOPElvUIParentTOP0-19" + E.db.movers.ReputationBarMover = "TOPElvUIParentTOP0-19" + E.db.movers.PvPMover = "TOPElvUIParentTOP-5-50" + E.db.movers.LocationMover = "TOPElvUIParentTOP0-30" + E.db.movers.LocationLiteMover = "TOPElvUIParentTOP0-30" + E.db.movers.AlertFrameMover = "TOPElvUIParentTOP0-32" + else + E.db.movers.ExperienceBarMover = "TOPElvUIParentTOP0-19" + E.db.movers.ReputationBarMover = "TOPElvUIParentTOP0-30" + E.db.movers.LocationMover = "TOPElvUIParentTOP0-41" + E.db.movers.LocationLiteMover = "TOPElvUIParentTOP0-41" + E.db.movers.AlertFrameMover = "TOPElvUIParentTOP0-43" + E.db.movers.PvPMover = "TOPElvUIParentTOP-5-61" + end + E.db.movers.MarkMover = "BOTTOMElvUIParentBOTTOM0132" + E.db.movers.MicrobarMover = "BOTTOMRIGHTElvUIParentBOTTOMRIGHT2244" + E.db.movers.LootFrameMover = "TOPLEFTUIParentTOPLEFT60-360" + E.db.movers.AurasMover = "TOPRIGHTElvUIParentTOPRIGHT-208-19" + E.db.movers.BagsMover = "TOPLEFTUIParentTOPLEFT0-19" + E.db.movers.GMMover = "TOPLEFTElvUIParentTOPLEFT402-19" + E.db.movers.BNETMover = "BOTTOMLEFTElvUIParentBOTTOMLEFT0479" + E.db.movers.ElvUF_FocusMover = "BOTTOMElvUIParentBOTTOM239103" + E.db.movers.ElvUF_FocusTargetMover = "BOTTOMElvUIParentBOTTOM23934" + E.db.movers.VehicleSeatMover = "TOPLEFTElvUIParentTOPLEFT185-38" + E.db.movers.DP_5_Mover = "BOTTOMElvUIParentBOTTOM-3050" + E.db.movers.DP_6_Mover = "BOTTOMElvUIParentBOTTOM3050" + E.db.movers.RightChatMover = "BOTTOMRIGHTUIParentBOTTOMRIGHT019" + E.db.movers.LeftChatMover = "BOTTOMLEFTUIParentBOTTOMLEFT019" + E.db.movers.Dashboard = "TOPLEFTElvUIParentTOPLEFT0-19" + E.db.movers.RaidUtility_Mover = "TOPElvUIParentTOP-283-19" + E.db.movers.AltPowerBarMover = "TOPElvUIParentTOP0-135" + end + + E:UpdateAll(true) +end + +function E:RepoocSetup() --The function to switch from classic ElvUI settings to Repooc's + InstallStepComplete.message = L["Repooc's Defaults Set"] + InstallStepComplete:Show() + if not E.db.movers then E.db.movers = {}; end + + layout = E.db.layoutSet --Pull which layout was selected if any. + + --General Options + E.db.general.bottomPanel = true + E.db.general.topPanel = true + E.db.general.backdropfadecolor = { + ["b"] = 0.06, + ["g"] = 0.06, + ["r"] = 0.06, + } + E.db.general.valuecolor = { + ["b"] = 0.59, + ["g"] = 1, + ["r"] = 0, + } + E.db.general.vendorGrays = true + E.db.general.bordercolor = { + ["b"] = 0.31, + ["g"] = 0.31, + ["r"] = 0.31, + } + E.db.general.experience.enable = true + E.db.general.reputation.enable = true + E.db.general.interruptAnnounce = "RAID" + + --Bags + E.db.bags.xOffset = 3 + + E.db.hideTutorial = 1 + + --Chat + E.db.chat.hyperlinkHover = false + E.db.chat.editBoxPosition = "ABOVE_CHAT" + E.db.chat.fontOutline = "OUTLINE" + E.db.chat.panelBackdropNameLeft = "Interface\\AddOns\\ElvUI_SLE\\media\\textures\\logo_elvui_sle.tga" + E.db.chat.panelBackdropNameRight = "Interface\\AddOns\\ElvUI_SLE\\media\\textures\\logo_elvui_sle.tga" + E.db.chat.panelTabBackdrop = false + E.db.chat.panelWidth = 433 + E.db.chat.tabFontSize = 11 + E.db.chat.timeStampFormat = "%I:%M %p " + + --Tooltip + E.db.tooltip.count = false + E.db.tooltip.spellid = false + + --Datatext + do + E.db.datatexts.minimapPanels = false + E.db.datatexts.fontOutline = "OUTLINE" + E.db.datatexts.lfrshow = true + + E.db.sle.datatext.bottom.enabled = true --Checked + E.private.sle.datatext.bottomhide = true + E.db.sle.datatext.chatleft.width = 417 + E.db.sle.datatext.chatright.width = 417 + E.db.sle.datatext.dp1.enabled = false + E.db.sle.datatext.dp2.enabled = false + E.db.sle.datatext.dp3.enabled = false + E.db.sle.datatext.dp4.enabled = false + E.db.sle.datatext.dp5.enabled = true + E.db.sle.datatext.dp5.width = 433 + E.private.sle.datatext.dp5hide = true + E.db.sle.datatext.dp6.enabled = true + E.db.sle.datatext.dp6.width = 433 + E.private.sle.datatext.dp6hide = true + E.db.sle.datatext.top.enabled = true + E.private.sle.datatext.tophide = true + + --Datatext Panels Presets + E.db.datatexts.panels['DP_1']['left'] = "" + E.db.datatexts.panels['DP_1']['middle'] = "" + E.db.datatexts.panels['DP_1']['righ'] = "" + E.db.datatexts.panels['DP_2']['left'] = "" + E.db.datatexts.panels['DP_2']['middle'] = "" + E.db.datatexts.panels['DP_2']['right'] = "" + E.db.datatexts.panels['DP_3']['left'] = "" + E.db.datatexts.panels['DP_3']['middle'] = "" + E.db.datatexts.panels['DP_3']['right'] = "" + E.db.datatexts.panels['DP_4']['left'] = "" + E.db.datatexts.panels['DP_4']['middle'] = "" + E.db.datatexts.panels['DP_4']['right'] = "" + E.db.datatexts.panels['DP_5']['left'] = "Durability" + E.db.datatexts.panels['DP_5']['middle'] = "" + E.db.datatexts.panels['DP_5']['right'] = "" + E.db.datatexts.panels['DP_6']['left'] = "" + E.db.datatexts.panels['DP_6']['middle'] = "" + E.db.datatexts.panels['DP_6']['right'] = "" + E.db.datatexts.panels['LeftChatDataPanel']['left'] = "Bags" + E.db.datatexts.panels['LeftChatDataPanel']['middle'] = "" + E.db.datatexts.panels['LeftChatDataPanel']['right'] = "" + E.db.datatexts.panels['RightChatDataPanel']['left'] = "" + E.db.datatexts.panels['RightChatDataPanel']['middle'] = "Gold" + E.db.datatexts.panels['RightChatDataPanel']['right'] = "Time" + E.db.datatexts.panels['Top_Center'] = "Version" + E.db.datatexts.panels['Bottom_Panel'] = "System" + E.db.datatexts.panels['LeftMiniPanel'] = "" + E.db.datatexts.panels['RightMiniPanel'] = "" + + --Datatext Panels Spec Specific + if layout == 'tank' then + E.db.datatexts.panels.DP_5.middle = "" + E.db.datatexts.panels.DP_5.right = "" + E.db.datatexts.panels.DP_6.left = "" + E.db.datatexts.panels.DP_6.middle = "" + elseif layout == 'healer' then + E.db.datatexts.panels.DP_5.middle = "MP5" + E.db.datatexts.panels.DP_5.right = "Spell/Heal Power" + E.db.datatexts.panels.DP_6.left = "Haste" + E.db.datatexts.panels.DP_6.middle = "Crit Chance" + elseif layout == 'dpsCaster' then + E.db.datatexts.panels.DP_5.middle = "" + E.db.datatexts.panels.DP_5.right = "" + E.db.datatexts.panels.DP_6.left = "" + E.db.datatexts.panels.DP_6.middle = "" + else + E.db.datatexts.panels.DP_5.middle = "" + E.db.datatexts.panels.DP_5.right = "" + E.db.datatexts.panels.DP_6.left = "" + E.db.datatexts.panels.DP_6.middle = "" + end + end + + --Unitframes + do + --Raid10 + E.db.unitframe.units.raid10.xOffset = 2 + E.db.unitframe.units.raid10.columnSpacing = 2 + E.db.unitframe.units.raid10.healPrediction = true + E.db.unitframe.units.raid10.width = 79 + + --Target + E.db.unitframe.units.target.aurabar.attachTo = "BUFFS" + E.db.unitframe.units.target.smartAuraDisplay = "SHOW_DEBUFFS_ON_FRIENDLIES" + E.db.unitframe.units.target.buffs.playerOnly.friendly = true + E.db.unitframe.units.target.debuffs.enable = false + E.db.unitframe.units.target.power.position = "BOTTOMLEFT" + E.db.unitframe.units.target.power.hideonnpc = false + E.db.unitframe.units.target.health.position = "LEFT" + + --Party + E.db.unitframe.units.party.columnAnchorPoint = "LEFT" + E.db.unitframe.units.party.healPrediction = true + E.db.unitframe.units.party.height = 52 + E.db.unitframe.units.party.point = "LEFT" + E.db.unitframe.units.party.width = 80 + E.db.unitframe.units.party.xOffset = 5 + E.db.unitframe.units.party.debuffs.anchorPoint = "BOTTOMLEFT" + E.db.unitframe.units.party.debuffs.initialAnchor = "TOPLEFT" + E.db.unitframe.units.party.debuffs.sizeOverride = 0 + E.db.unitframe.units.party.debuffs.useFilter = "Blacklist" + E.db.unitframe.units.party.health.frequentUpdates = true + E.db.unitframe.units.party.health.orientation = "VERTICAL" + E.db.unitframe.units.party.health.position = "BOTTOM" + E.db.unitframe.units.party.health.text_format = "[healthcolor][health:deficit]" + E.db.unitframe.units.party.targetsGroup.anchorPoint = "TOP" + E.db.unitframe.units.party.targetsGroup.initialAnchor = "BOTTOM" + E.db.unitframe.units.party.targetsGroup.width = 80 + E.db.unitframe.units.party.targetsGroup.xOffset = 0 + E.db.unitframe.units.party.targetsGroup.yOffset = 1 + E.db.unitframe.units.party.name.position = "TOP" + E.db.unitframe.units.party.name.text_format = "[namecolor][name:medium]" + E.db.unitframe.units.party.petsGroup.anchorPoint = "TOP" + E.db.unitframe.units.party.petsGroup.enable = true + E.db.unitframe.units.party.petsGroup.initialAnchor = "BOTTOM" + E.db.unitframe.units.party.petsGroup.width = 80 + E.db.unitframe.units.party.petsGroup.xOffset = 0 + E.db.unitframe.units.party.petsGroup.yOffset = 1 + + --Raid25 + E.db.unitframe.units.raid25.columnSpacing = 2 + E.db.unitframe.units.raid25.customTexts = {} + E.db.unitframe.units.raid25.healPrediction = true + E.db.unitframe.units.raid25.health.frequentUpdates = true + E.db.unitframe.units.raid25.health.orientation = "VERTICAL" + E.db.unitframe.units.raid25.width = 79 + E.db.unitframe.units.raid25.xOffset = 2 + + --Raid40 + E.db.unitframe.units.raid40.columnSpacing = 2 + E.db.unitframe.units.raid40.healPrediction = true + E.db.unitframe.units.raid40.health.frequentUpdates = true + E.db.unitframe.units.raid40.health.text = true + E.db.unitframe.units.raid40.health.orientation = "VERTICAL" + E.db.unitframe.units.raid40.height = 36 + E.db.unitframe.units.raid40.name.position = "TOP" + E.db.unitframe.units.raid40.roleIcon.enable = true + E.db.unitframe.units.raid40.width = 79 + E.db.unitframe.units.raid40.xOffset = 2 + + --Arena + E.db.unitframe.units.arena.castbar.width = 200 + E.db.unitframe.units.arena.width = 200 + + --Player + E.db.unitframe.units.player.health.position = "TOPRIGHT" + E.db.unitframe.units.player.power.position = "BOTTOMRIGHT" + + --Boss + E.db.unitframe.units.boss.width = 200 + E.db.unitframe.units.boss.castbar.width = 200 + + E.db.unitframe.colors.healthclass = true + E.db.unitframe.colors.auraBarBuff = { + ["b"] = 0.59, + ["g"] = 1, + ["r"] = 0, + } + E.db.unitframe.colors.castColor = { + ["b"] = 0.59, + ["g"] = 1, + ["r"] = 0, + } + end + + --Actionbars + --Bar 2 + E.db.actionbar.bar2.enabled = true + --Bar 3 + E.db.actionbar.bar3.enabled = false + --Bar 4 + E.db.actionbar.bar4.enabled = true + E.db.actionbar.bar4.backdrop = false + E.db.actionbar.bar4.buttonsize = 28 + E.db.actionbar.bar4.buttonspacing = 1 + --Bar 5 + E.db.actionbar.bar5.enabled = false + + --UIButtons + E.db.sle.uibuttons.enable = true + E.db.sle.uibuttons.position = "uib_hor" + + --SLE Tooltip + E.db.sle.castername = true + + do + if layout == "healer" then + E.db.movers.ElvUF_PlayerMover = "BOTTOMLEFTElvUIParentBOTTOMLEFT460187" + E.db.movers.ElvUF_TargetMover = "BOTTOMRIGHTElvUIParentBOTTOMRIGHT-460187" + E.db.movers.ElvUF_TargetTargetMover = "BOTTOMRIGHTElvUIParentBOTTOMRIGHT-460129" + E.db.movers.ElvUF_PetMover = "BOTTOMLEFTElvUIParentBOTTOMLEFT460129" + E.db.movers.ElvUF_FocusMover = "BOTTOMRIGHTElvUIParentBOTTOMRIGHT-50052" + E.db.movers.ElvUF_PartyMover = "BOTTOMElvUIParentBOTTOM074" + E.db.movers.ElvUF_PlayerCastbarMover = "BOTTOMLEFTElvUIParentBOTTOMLEFT460166" + E.db.movers.ElvUF_Raid10Mover = "BOTTOMElvUIParentBOTTOM091" + E.db.movers.ElvUF_Raid25Mover = "BOTTOMElvUIParentBOTTOM091" + E.db.movers.ElvUF_Raid40Mover = "BOTTOMLEFTElvUIParentBOTTOMLEFT13202" + E.db.movers.ElvUF_TargetCastbarMover = "BOTTOMRIGHTElvUIParentBOTTOMRIGHT-460166" + E.db.movers.UIBFrameMover = "BOTTOMLEFTElvUIParentBOTTOMLEFT329175" + E.db.movers.ElvAB_1 = "BOTTOMElvUIParentBOTTOM021" + E.db.movers.ElvAB_2 = "BOTTOMElvUIParentBOTTOM055" + E.db.movers.ElvAB_4 = "TOPRIGHTElvUIParentTOPRIGHT-4-185" + E.db.movers.ElvUF_FocusCastbarMover = "BOTTOMRIGHTElvUIParentBOTTOMRIGHT-50031" + E.db.movers.DP_6_Mover = "BOTTOMElvUIParentBOTTOM3110" + E.db.movers.LeftChatMover = "BOTTOMLEFTUIParentBOTTOMLEFT019" + E.db.movers.DP_5_Mover = "BOTTOMElvUIParentBOTTOM-3100" + E.db.movers.ReputationBarMover = "TOPElvUIParentTOP0-21" + E.db.movers.AlertFrameMover = "TOPElvUIParentTOP0-43" + E.db.movers.WatchFrameMover = "TOPLEFTElvUIParentTOPLEFT115-123" + E.db.movers.LootFrameMover = "TOPRIGHTElvUIParentTOPRIGHT-140-356" + E.db.movers.RaidUtility_Mover = "TOPLEFTElvUIParentTOPLEFT524-4" + E.db.movers.BossHeaderMover = "TOPRIGHTElvUIParentTOPRIGHT-91-210" + E.db.movers.RightChatMover = "BOTTOMRIGHTUIParentBOTTOMRIGHT019" + E.db.movers.ExperienceBarMover = "TOPElvUIParentTOP0-32" + + else + E.db.movers.ElvUF_PlayerMover = "BOTTOMLEFTElvUIParentBOTTOMLEFT460187" + E.db.movers.ElvUF_TargetMover = "BOTTOMRIGHTElvUIParentBOTTOMRIGHT-460187" + E.db.movers.ElvUF_TargetTargetMover = "BOTTOMRIGHTElvUIParentBOTTOMRIGHT-460129" + E.db.movers.ElvUF_PetMover = "BOTTOMLEFTElvUIParentBOTTOMLEFT460129" + E.db.movers.ElvUF_FocusMover = "BOTTOMRIGHTElvUIParentBOTTOMRIGHT-50052" + E.db.movers.ElvUF_PartyMover = "BOTTOMElvUIParentBOTTOM074" + E.db.movers.ElvUF_PlayerCastbarMover = "BOTTOMLEFTElvUIParentBOTTOMLEFT460166" + E.db.movers.ElvUF_Raid10Mover = "BOTTOMElvUIParentBOTTOM091" + E.db.movers.ElvUF_Raid25Mover = "BOTTOMElvUIParentBOTTOM091" + E.db.movers.ElvUF_Raid40Mover = "BOTTOMLEFTElvUIParentBOTTOMLEFT13202" + E.db.movers.ElvUF_TargetCastbarMover = "BOTTOMRIGHTElvUIParentBOTTOMRIGHT-460166" + E.db.movers.UIBFrameMover = "BOTTOMLEFTElvUIParentBOTTOMLEFT329175" + E.db.movers.ElvAB_1 = "BOTTOMElvUIParentBOTTOM021" + E.db.movers.ElvAB_2 = "BOTTOMElvUIParentBOTTOM055" + E.db.movers.ElvAB_4 = "TOPRIGHTElvUIParentTOPRIGHT-4-185" + E.db.movers.ElvUF_FocusCastbarMover = "BOTTOMRIGHTElvUIParentBOTTOMRIGHT-50031" + E.db.movers.DP_6_Mover = "BOTTOMElvUIParentBOTTOM3110" + E.db.movers.LeftChatMover = "BOTTOMLEFTUIParentBOTTOMLEFT019" + E.db.movers.DP_5_Mover = "BOTTOMElvUIParentBOTTOM-3100" + E.db.movers.ReputationBarMover = "TOPElvUIParentTOP0-21" + E.db.movers.AlertFrameMover = "TOPElvUIParentTOP0-43" + E.db.movers.WatchFrameMover = "TOPLEFTElvUIParentTOPLEFT115-123" + E.db.movers.LootFrameMover = "TOPRIGHTElvUIParentTOPRIGHT-140-356" + E.db.movers.RaidUtility_Mover = "TOPLEFTElvUIParentTOPLEFT524-4" + E.db.movers.BossHeaderMover = "TOPRIGHTElvUIParentTOPRIGHT-91-210" + E.db.movers.RightChatMover = "BOTTOMRIGHTUIParentBOTTOMRIGHT019" + E.db.movers.ExperienceBarMover = "TOPElvUIParentTOP0-32" + end + end + + E:UpdateAll(true) +end + +function E:HudSimple() + local H = E:GetModule('HUD') + InstallStepComplete.message = L["Simple Layout Set"] + InstallStepComplete:Show() + H:SimpleLayout() + H:UpdateAllFrames() +end + +function E:HudDefault() + local H = E:GetModule('HUD') + InstallStepComplete.message = L["Default Layout"] + InstallStepComplete:Show() + E:CopyTable(E.db.hud,P.hud) + H:UpdateAllFrames() +end + +local function InstallComplete() + E.private.install_complete = E.version + + if GetCVarBool("Sound_EnableMusic") then + StopMusic() + end + + ReloadUI() +end + +local function ResetAll() + InstallNextButton:Disable() + InstallPrevButton:Disable() + InstallOption1Button:Hide() + InstallOption1Button:SetScript("OnClick", nil) + InstallOption1Button:SetText("") + InstallOption2Button:Hide() + InstallOption2Button:SetScript('OnClick', nil) + InstallOption2Button:SetText('') + InstallOption3Button:Hide() + InstallOption3Button:SetScript('OnClick', nil) + InstallOption3Button:SetText('') + InstallOption4Button:Hide() + InstallOption4Button:SetScript('OnClick', nil) + InstallOption4Button:SetText('') + ElvUIInstallFrame.SubTitle:SetText("") + ElvUIInstallFrame.Desc1:SetText("") + ElvUIInstallFrame.Desc2:SetText("") + ElvUIInstallFrame.Desc3:SetText("") + ElvUIInstallFrame:Size(550, 400) +end + +local function SetPage(PageNum) + CURRENT_PAGE = PageNum + ResetAll() + InstallStatus:SetValue(PageNum) + + local f = ElvUIInstallFrame + + if PageNum == MAX_PAGE then + InstallNextButton:Disable() + else + InstallNextButton:Enable() + end + + if PageNum == 1 then + InstallPrevButton:Disable() + else + InstallPrevButton:Enable() + end + + if PageNum == 1 then + f.SubTitle:SetText(format(L["Welcome to ElvUI version %s!"], E.version)) + f.Desc1:SetText(L["This install process will help you learn some of the features in ElvUI has to offer and also prepare your user interface for usage."]) + f.Desc2:SetText(L["The in-game configuration menu can be accesses by typing the /ec command or by clicking the 'C' button on the minimap. Press the button below if you wish to skip the installation process."]) + f.Desc3:SetText(L["Please press the continue button to go onto the next step."]) + + InstallOption1Button:Show() + InstallOption1Button:SetScript("OnClick", InstallComplete) + InstallOption1Button:SetText(L["Skip Process"]) + elseif PageNum == 2 then + f.SubTitle:SetText(L["CVars"]) + f.Desc1:SetText(L["This part of the installation process sets up your World of Warcraft default options it is recommended you should do this step for everything to behave properly."]) + f.Desc2:SetText(L["Please click the button below to setup your CVars."]) + f.Desc3:SetText(L["Importance: |cff07D400High|r"]) + InstallOption1Button:Show() + InstallOption1Button:SetScript("OnClick", SetupCVars) + InstallOption1Button:SetText(L["Setup CVars"]) + elseif PageNum == 3 then + f.SubTitle:SetText(L["Chat"]) + f.Desc1:SetText(L["This part of the installation process sets up your chat windows names, positions and colors."]) + f.Desc2:SetText(L["The chat windows function the same as Blizzard standard chat windows, you can right click the tabs and drag them around, rename, etc. Please click the button below to setup your chat windows."]) + f.Desc3:SetText(L["Importance: |cffD3CF00Medium|r"]) + InstallOption1Button:Show() + InstallOption1Button:SetScript("OnClick", SetupChat) + InstallOption1Button:SetText(L["Setup Chat"]) + elseif PageNum == 4 then + f.SubTitle:SetText(L["Pixel Perfect"]) + f.Desc1:SetText(L['The Pixel Perfect option will change the overall apperance of your UI. Using Pixel Perfect is a slight performance increase over the traditional layout.']) + f.Desc2:SetText(L['Using this option will cause your borders around frames to be 1 pixel wide instead of 3 pixel. You may have to finish the installation to notice a differance. By default this is enabled.']) + f.Desc3:SetText(L["Importance: |cffFF0000Low|r"]) + + InstallOption1Button:Show() + InstallOption1Button:SetScript('OnClick', function() E:SetupPixelPerfect(true) end) + InstallOption1Button:SetText(L["Enable"]) + InstallOption2Button:Show() + InstallOption2Button:SetScript('OnClick', function() E:SetupPixelPerfect(false) end) + InstallOption2Button:SetText(L['Disable']) + elseif PageNum == 5 then + f.SubTitle:SetText(L['Theme Setup']) + f.Desc1:SetText(L['Choose a theme layout you wish to use for your initial setup.']) + f.Desc2:SetText(L['You can always change fonts and colors of any element of elvui from the in-game configuration.']) + f.Desc3:SetText(L["Importance: |cffFF0000Low|r"]) + + InstallOption1Button:Show() + InstallOption1Button:SetScript('OnClick', function() E:SetupTheme('classic') end) + InstallOption1Button:SetText(L["Classic"]) + InstallOption2Button:Show() + InstallOption2Button:SetScript('OnClick', function() E:SetupTheme('default') end) + InstallOption2Button:SetText(L['Dark']) + InstallOption3Button:Show() + InstallOption3Button:SetScript('OnClick', function() E:SetupTheme('class') end) + InstallOption3Button:SetText(CLASS) + elseif PageNum == 6 then + f.SubTitle:SetText(L["Resolution"]) + f.Desc1:SetText(format(L["Your current resolution is %s, this is considered a %s resolution."], E.resolution, E.lowversion == true and L["low"] or L["high"])) + if E.lowversion then + f.Desc2:SetText(L["This resolution requires that you change some settings to get everything to fit on your screen."].." "..L["Click the button below to resize your chat frames, unitframes, and reposition your actionbars."].." "..L["You may need to further alter these settings depending how low you resolution is."]) + f.Desc3:SetText(L["Importance: |cff07D400High|r"]) + else + f.Desc2:SetText(L["This resolution doesn't require that you change settings for the UI to fit on your screen."].." "..L["Click the button below to resize your chat frames, unitframes, and reposition your actionbars."].." "..L["This is completely optional."]) + f.Desc3:SetText(L["Importance: |cffFF0000Low|r"]) + end + + InstallOption1Button:Show() + InstallOption1Button:SetScript('OnClick', function() E.SetupResolution('high') end) + InstallOption1Button:SetText(L["High Resolution"]) + InstallOption2Button:Show() + InstallOption2Button:SetScript('OnClick', function() E.SetupResolution('low') end) + InstallOption2Button:SetText(L['Low Resolution']) + elseif PageNum == 7 then + f.SubTitle:SetText(L["Layout"]) + f.Desc1:SetText(L["You can now choose what layout you wish to use based on your combat role."]) + f.Desc2:SetText(L["This will change the layout of your unitframes, raidframes, and datatexts."]) + f.Desc3:SetText(L["Importance: |cffD3CF00Medium|r"]) + InstallOption1Button:Show() + InstallOption1Button:SetScript('OnClick', function() E.db.layoutSet = nil; E:SetupLayout('tank') end) + InstallOption1Button:SetText(L['Tank']) + InstallOption2Button:Show() + InstallOption2Button:SetScript('OnClick', function() E.db.layoutSet = nil; E:SetupLayout('healer') end) + InstallOption2Button:SetText(L['Healer']) + InstallOption3Button:Show() + InstallOption3Button:SetScript('OnClick', function() E.db.layoutSet = nil; E:SetupLayout('dpsMelee') end) + InstallOption3Button:SetText(L['Physical DPS']) + InstallOption4Button:Show() + InstallOption4Button:SetScript('OnClick', function() E.db.layoutSet = nil; E:SetupLayout('dpsCaster') end) + InstallOption4Button:SetText(L['Caster DPS']) + elseif PageNum == 8 then + f.SubTitle:SetText(L["Auras System"]) + f.Desc1:SetText(L["Select the type of aura system you want to use with ElvUI's unitframes. The integrated system utilizes both aura-bars and aura-icons. The icons only system will display only icons and aurabars won't be used. The classic system will configure your auras to how they were pre-v4."]) + f.Desc2:SetText(L["If you have an icon or aurabar that you don't want to display simply hold down shift and right click the icon for it to disapear."]) + f.Desc3:SetText(L["Importance: |cffD3CF00Medium|r"]) + InstallOption1Button:Show() + InstallOption1Button:SetScript('OnClick', function() SetupAuras('classic') end) + InstallOption1Button:SetText(L['Classic']) + InstallOption2Button:Show() + InstallOption2Button:SetScript('OnClick', function() SetupAuras() end) + InstallOption2Button:SetText(L['Icons Only']) + InstallOption3Button:Show() + InstallOption3Button:SetScript('OnClick', function() SetupAuras('integrated') end) + InstallOption3Button:SetText(L['Integrated']) + elseif PageNum == 9 then --The new page + f.SubTitle:SetText(L["Shadow & Light Settings"]) + f.Desc1:SetText(L["You can now choose if you what to use one of authors' set of options. This will change not only the positioning of some elements but also change a bunch of other options."]) + f.Desc2:SetText(L["SLE_Install_Text2"]) + f.Desc3:SetText(L["Importance: |cffFF0000Low|r"]) + + InstallOption1Button:Show() + InstallOption1Button:SetScript('OnClick', function() E:DarthSetup() end) + InstallOption1Button:SetText(L["Darth's Config"]) + InstallOption2Button:Show() + InstallOption2Button:SetScript('OnClick', function() E:RepoocSetup() end) + InstallOption2Button:SetText(L["Repooc's Config"]) + elseif PageNum == 10 and IsAddOnLoaded("ElvUI_Hud") then --Hud's page if enabled + f.SubTitle:SetText("ElvUI Hud") + f.Desc1:SetText(L["Thank you for using ElvUI Hud!"]) + f.Desc2:SetText(L["Here you can choose between the simple layout (only player health and power) or the default layout for the hud"]) + f.Desc3:SetText(L["Importance: |cffFF0000Low|r"]) + + InstallOption1Button:Show() + InstallOption1Button:SetScript('OnClick', function() E:HudSimple() end) + InstallOption1Button:SetText(L["Simple Layout"]) + InstallOption2Button:Show() + InstallOption2Button:SetScript('OnClick', function() E:HudDefault() end) + InstallOption2Button:SetText(L["Default Layout"]) + elseif PageNum == 10 and not IsAddOnLoaded("ElvUI_Hud") then --Finish install if Hud disabled + f.SubTitle:SetText(L["Installation Complete"]) + f.Desc1:SetText(L["You are now finished with the installation process. If you are in need of technical support please visit us at http://www.tukui.org."]) + f.Desc2:SetText(L["Please click the button below so you can setup variables and ReloadUI."]) + InstallOption1Button:Show() + InstallOption1Button:SetScript("OnClick", InstallComplete) + InstallOption1Button:SetText(L["Finished"]) + ElvUIInstallFrame:Size(550, 350) + elseif PageNum == 11 then --Finish install if Hud enabled + f.SubTitle:SetText(L["Installation Complete"]) + f.Desc1:SetText(L["You are now finished with the installation process. If you are in need of technical support please visit us at http://www.tukui.org."]) + f.Desc2:SetText(L["Please click the button below so you can setup variables and ReloadUI."]) + InstallOption1Button:Show() + InstallOption1Button:SetScript("OnClick", InstallComplete) + InstallOption1Button:SetText(L["Finished"]) + ElvUIInstallFrame:Size(550, 350) + end +end + +local function NextPage() + if CURRENT_PAGE ~= MAX_PAGE then + CURRENT_PAGE = CURRENT_PAGE + 1 + SetPage(CURRENT_PAGE) + end +end + +local function PreviousPage() + if CURRENT_PAGE ~= 1 then + CURRENT_PAGE = CURRENT_PAGE - 1 + SetPage(CURRENT_PAGE) + end +end + +--Install UI +function E:Install() + --ElvUI don't have this? + MaxPages() + if not InstallStepComplete then + local imsg = CreateFrame("Frame", "InstallStepComplete", E.UIParent) + imsg:Size(418, 72) + imsg:Point("TOP", 0, -190) + imsg:Hide() + imsg:SetScript('OnShow', function(self) + if self.message then + PlaySoundFile([[Sound\Interface\LevelUp.wav]]) + self.text:SetText(self.message) + UIFrameFadeOut(self, 3.5, 1, 0) + E:Delay(4, function() self:Hide() end) + self.message = nil + + if imsg.firstShow == false then + if GetCVarBool("Sound_EnableMusic") then + PlayMusic([[Sound\Music\ZoneMusic\DMF_L70ETC01.mp3]]) + end + imsg.firstShow = true + end + else + self:Hide() + end + end) + + imsg.firstShow = false + + imsg.bg = imsg:CreateTexture(nil, 'BACKGROUND') + imsg.bg:SetTexture([[Interface\LevelUp\LevelUpTex]]) + imsg.bg:SetPoint('BOTTOM') + imsg.bg:Size(326, 103) + imsg.bg:SetTexCoord(0.00195313, 0.63867188, 0.03710938, 0.23828125) + imsg.bg:SetVertexColor(1, 1, 1, 0.6) + + imsg.lineTop = imsg:CreateTexture(nil, 'BACKGROUND') + imsg.lineTop:SetDrawLayer('BACKGROUND', 2) + imsg.lineTop:SetTexture([[Interface\LevelUp\LevelUpTex]]) + imsg.lineTop:SetPoint("TOP") + imsg.lineTop:Size(418, 7) + imsg.lineTop:SetTexCoord(0.00195313, 0.81835938, 0.01953125, 0.03320313) + + imsg.lineBottom = imsg:CreateTexture(nil, 'BACKGROUND') + imsg.lineBottom:SetDrawLayer('BACKGROUND', 2) + imsg.lineBottom:SetTexture([[Interface\LevelUp\LevelUpTex]]) + imsg.lineBottom:SetPoint("BOTTOM") + imsg.lineBottom:Size(418, 7) + imsg.lineBottom:SetTexCoord(0.00195313, 0.81835938, 0.01953125, 0.03320313) + + imsg.text = imsg:CreateFontString(nil, 'ARTWORK', 'GameFont_Gigantic') + imsg.text:Point("BOTTOM", 0, 12) + imsg.text:SetTextColor(1, 0.82, 0) + imsg.text:SetJustifyH("CENTER") + end + + --Create Frame + if not ElvUIInstallFrame then + local f = CreateFrame("Button", "ElvUIInstallFrame", E.UIParent) + f.SetPage = SetPage + f:Size(550, 400) + f:SetTemplate("Transparent") + f:SetPoint("CENTER") + f:SetFrameStrata('TOOLTIP') + + f.Title = f:CreateFontString(nil, 'OVERLAY') + f.Title:FontTemplate(nil, 17, nil) + f.Title:Point("TOP", 0, -5) + f.Title:SetText(L["ElvUI Installation"]) + + f.Next = CreateFrame("Button", "InstallNextButton", f, "UIPanelButtonTemplate") + f.Next:StripTextures() + f.Next:SetTemplate("Default", true) + f.Next:Size(110, 25) + f.Next:Point("BOTTOMRIGHT", -5, 5) + f.Next:SetText(CONTINUE) + f.Next:Disable() + f.Next:SetScript("OnClick", NextPage) + E.Skins:HandleButton(f.Next, true) + + f.Prev = CreateFrame("Button", "InstallPrevButton", f, "UIPanelButtonTemplate") + f.Prev:StripTextures() + f.Prev:SetTemplate("Default", true) + f.Prev:Size(110, 25) + f.Prev:Point("BOTTOMLEFT", 5, 5) + f.Prev:SetText(PREVIOUS) + f.Prev:Disable() + f.Prev:SetScript("OnClick", PreviousPage) + E.Skins:HandleButton(f.Prev, true) + + f.Status = CreateFrame("StatusBar", "InstallStatus", f) + f.Status:SetFrameLevel(f.Status:GetFrameLevel() + 2) + f.Status:CreateBackdrop("Default") + f.Status:SetStatusBarTexture(E["media"].normTex) + f.Status:SetStatusBarColor(unpack(E["media"].rgbvaluecolor)) + f.Status:SetMinMaxValues(0, MAX_PAGE) + f.Status:Point("TOPLEFT", f.Prev, "TOPRIGHT", 6, -2) + f.Status:Point("BOTTOMRIGHT", f.Next, "BOTTOMLEFT", -6, 2) + f.Status.text = f.Status:CreateFontString(nil, 'OVERLAY') + f.Status.text:FontTemplate() + f.Status.text:SetPoint("CENTER") + f.Status.text:SetText(CURRENT_PAGE.." / "..MAX_PAGE) + f.Status:SetScript("OnValueChanged", function(self) + self.text:SetText(self:GetValue().." / "..MAX_PAGE) + end) + + f.Option1 = CreateFrame("Button", "InstallOption1Button", f, "UIPanelButtonTemplate") + f.Option1:StripTextures() + f.Option1:Size(160, 30) + f.Option1:Point("BOTTOM", 0, 45) + f.Option1:SetText("") + f.Option1:Hide() + E.Skins:HandleButton(f.Option1, true) + + f.Option2 = CreateFrame("Button", "InstallOption2Button", f, "UIPanelButtonTemplate") + f.Option2:StripTextures() + f.Option2:Size(110, 30) + f.Option2:Point('BOTTOMLEFT', f, 'BOTTOM', 4, 45) + f.Option2:SetText("") + f.Option2:Hide() + f.Option2:SetScript('OnShow', function() f.Option1:SetWidth(110); f.Option1:ClearAllPoints(); f.Option1:Point('BOTTOMRIGHT', f, 'BOTTOM', -4, 45) end) + f.Option2:SetScript('OnHide', function() f.Option1:SetWidth(160); f.Option1:ClearAllPoints(); f.Option1:Point("BOTTOM", 0, 45) end) + E.Skins:HandleButton(f.Option2, true) + + f.Option3 = CreateFrame("Button", "InstallOption3Button", f, "UIPanelButtonTemplate") + f.Option3:StripTextures() + f.Option3:Size(100, 30) + f.Option3:Point('LEFT', f.Option2, 'RIGHT', 4, 0) + f.Option3:SetText("") + f.Option3:Hide() + f.Option3:SetScript('OnShow', function() f.Option1:SetWidth(100); f.Option1:ClearAllPoints(); f.Option1:Point('RIGHT', f.Option2, 'LEFT', -4, 0); f.Option2:SetWidth(100); f.Option2:ClearAllPoints(); f.Option2:Point('BOTTOM', f, 'BOTTOM', 0, 45) end) + f.Option3:SetScript('OnHide', function() f.Option1:SetWidth(160); f.Option1:ClearAllPoints(); f.Option1:Point("BOTTOM", 0, 45); f.Option2:SetWidth(110); f.Option2:ClearAllPoints(); f.Option2:Point('BOTTOMLEFT', f, 'BOTTOM', 4, 45) end) + E.Skins:HandleButton(f.Option3, true) + + f.Option4 = CreateFrame("Button", "InstallOption4Button", f, "UIPanelButtonTemplate") + f.Option4:StripTextures() + f.Option4:Size(100, 30) + f.Option4:Point('LEFT', f.Option3, 'RIGHT', 4, 0) + f.Option4:SetText("") + f.Option4:Hide() + f.Option4:SetScript('OnShow', function() + f.Option1:Width(100) + f.Option2:Width(100) + + f.Option1:ClearAllPoints(); + f.Option1:Point('RIGHT', f.Option2, 'LEFT', -4, 0); + f.Option2:ClearAllPoints(); + f.Option2:Point('BOTTOMRIGHT', f, 'BOTTOM', -4, 45) + end) + f.Option4:SetScript('OnHide', function() f.Option1:SetWidth(160); f.Option1:ClearAllPoints(); f.Option1:Point("BOTTOM", 0, 45); f.Option2:SetWidth(110); f.Option2:ClearAllPoints(); f.Option2:Point('BOTTOMLEFT', f, 'BOTTOM', 4, 45) end) + E.Skins:HandleButton(f.Option4, true) + + f.SubTitle = f:CreateFontString(nil, 'OVERLAY') + f.SubTitle:FontTemplate(nil, 15, nil) + f.SubTitle:Point("TOP", 0, -40) + + f.Desc1 = f:CreateFontString(nil, 'OVERLAY') + f.Desc1:FontTemplate() + f.Desc1:Point("TOPLEFT", 20, -75) + f.Desc1:Width(f:GetWidth() - 40) + + f.Desc2 = f:CreateFontString(nil, 'OVERLAY') + f.Desc2:FontTemplate() + f.Desc2:Point("TOPLEFT", 20, -125) + f.Desc2:Width(f:GetWidth() - 40) + + f.Desc3 = f:CreateFontString(nil, 'OVERLAY') + f.Desc3:FontTemplate() + f.Desc3:Point("TOPLEFT", 20, -175) + f.Desc3:Width(f:GetWidth() - 40) + + local close = CreateFrame("Button", "InstallCloseButton", f, "UIPanelCloseButton") + close:SetPoint("TOPRIGHT", f, "TOPRIGHT") + close:SetScript("OnClick", function() + f:Hide() + end) + E.Skins:HandleCloseButton(close) + + f.tutorialImage = f:CreateTexture('InstallTutorialImage', 'OVERLAY') + f.tutorialImage:Size(256, 128) + f.tutorialImage:SetTexture('Interface\\AddOns\\ElvUI_SLE\\media\\textures\\logo_elvui_sle.tga') + f.tutorialImage:Point('BOTTOM', 0, 70) + + end + + ElvUIInstallFrame:Show() + NextPage() end \ No newline at end of file -- 1.7.9.5