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 = 'HIDE' 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" E.db.nameplate.classIcons = false E.db.nameplate.smallPlates = false --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 " E.db.chat.whisperSound = "Whisper Alert" --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 = "BOTTOM" 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.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 = "BOTTOM" 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.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 = "BOTTOM" 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.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.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.power.position = 'RIGHT' 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.power.position = 'RIGHT' 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.font = "ElvUI Font" E.db.actionbar.fontOutline = 'OUTLINE' 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