From 97e30f0ec44591d6781dea845accf98c1dbc5fec Mon Sep 17 00:00:00 2001 From: Repooc Date: Sat, 7 Jul 2012 00:22:34 -0500 Subject: [PATCH] Believe Repooc's High/Low Resolution Complete At the moment it is a basic setup that I still have to tweak per class and should work for a starter. --- ElvUI_SLE/core/install.lua | 3466 ++++++++++++++++++++++---------------------- 1 file changed, 1755 insertions(+), 1711 deletions(-) diff --git a/ElvUI_SLE/core/install.lua b/ElvUI_SLE/core/install.lua index 86c28ab..22de24e 100644 --- a/ElvUI_SLE/core/install.lua +++ b/ElvUI_SLE/core/install.lua @@ -1,1712 +1,1756 @@ -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 = 8 - -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_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 == "Elv" 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") - - --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("showNewbieTips", 0) - SetCVar("showLootSpam", 1) - SetCVar("UberTooltips", 1) - SetCVar("threatWarning", 3) - SetCVar('alwaysShowActionBars', 1) - SetCVar('lockActionBars', 1) - 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:SetupTheme(theme, noDisplayMsg) - local classColor = RAID_CLASS_COLORS[E.myclass] - E.db.theme = theme - - --Set fonts - if theme == "classic" then - E.db.general.font = "ElvUI Font" - E.db.general.fontsize = 12 - - E.db.unitframe.font = "ElvUI Font" - E.db.unitframe.fontsize = 12 - E.db.unitframe.fontoutline = "OUTLINE" - else - E.db.general.font = "ElvUI Pixel" - E.db.general.fontsize = 11 - - E.db.unitframe.font = "ElvUI Pixel" - E.db.unitframe.fontsize = 10 - E.db.unitframe.fontoutline = "MONOCHROMEOUTLINE" - end - - --Set colors - if theme == "classic" or theme == "classic_pixel" 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.units.player.castbar.color = E:GetColor(.31, .31, .31) - E.db.unitframe.units.target.castbar.color = E:GetColor(.31, .31, .31) - E.db.unitframe.units.focus.castbar.color = E:GetColor(.31, .31, .31) - E.db.unitframe.units.boss.castbar.color = E:GetColor(.31, .31, .31) - E.db.unitframe.units.arena.castbar.color = E:GetColor(.31, .31, .31) - - E.db.classtimer.player.buffcolor = E:GetColor(.31, .31, .31) - E.db.classtimer.target.buffcolor = E:GetColor(.31, .31, .31) - elseif theme == "class" then - E.db.general.bordercolor = E:GetColor(classColor.r, classColor.b, classColor.g) - E.db.general.backdropcolor = E:GetColor(.1, .1, .1) - E.db.general.backdropfadecolor = E:GetColor(.06, .06, .06, .8) - - E.db.unitframe.colors.healthclass = true - E.db.unitframe.units.player.castbar.color = E:GetColor(classColor.r, classColor.b, classColor.g) - E.db.unitframe.units.target.castbar.color = E:GetColor(classColor.r, classColor.b, classColor.g) - E.db.unitframe.units.focus.castbar.color = E:GetColor(classColor.r, classColor.b, classColor.g) - E.db.unitframe.units.boss.castbar.color = E:GetColor(classColor.r, classColor.b, classColor.g) - E.db.unitframe.units.arena.castbar.color = E:GetColor(classColor.r, classColor.b, classColor.g) - - E.db.classtimer.player.buffcolor = E:GetColor(classColor.r, classColor.b, classColor.g) - E.db.classtimer.target.buffcolor = 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.healthclass = false - E.db.unitframe.colors.health = E:GetColor(.1, .1, .1) - E.db.unitframe.units.player.castbar.color = E:GetColor(.1, .1, .1) - E.db.unitframe.units.target.castbar.color = E:GetColor(.1, .1, .1) - E.db.unitframe.units.focus.castbar.color = E:GetColor(.1, .1, .1) - E.db.unitframe.units.boss.castbar.color = E:GetColor(.1, .1, .1) - E.db.unitframe.units.arena.castbar.color = E:GetColor(.1, .1, .1) - - E.db.classtimer.player.buffcolor = E:GetColor(.1, .1, .1) - E.db.classtimer.target.buffcolor = 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 - - E:UpdateAll(true) - - InstallStatus:SetStatusBarColor(unpack(E['media'].rgbvaluecolor)) - - if InstallStepComplete and not noDisplayMsg then - InstallStepComplete.message = L["Theme Set"] - InstallStepComplete:Show() - 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.general.panelWidth = 400 - E.db.general.panelHeight = 180 - E.db.sle.datatext.chatleft.width = 384 - E.db.sle.datatext.chatright.width = 384 - - 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 - - E.db.movers.ElvAB_2 = "CENTERUIParentBOTTOM056.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.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 - - E.db.movers.ElvUF_PlayerMover = "BOTTOMUIParentBOTTOM-106135" - E.db.movers.ElvUF_TargetTargetMover = "BOTTOMUIParentBOTTOM10680" - E.db.movers.ElvUF_TargetMover = "BOTTOMUIParentBOTTOM106135" - E.db.movers.ElvUF_PetMover = "BOTTOMUIParentBOTTOM-10680" - E.db.movers.ElvUF_FocusMover = "BOTTOMUIParentBOTTOM310332" - - E.db.lowresolutionset = true; - elseif not noDataReset then - E.db.general.panelWidth = P.general.panelWidth - E.db.general.panelHeight = P.general.panelHeight - - E:CopyTable(E.db.actionbar, P.actionbar) - E:CopyTable(E.db.unitframe.units, P.unitframe.units) - - E.db.lowresolutionset = nil; - end - - if not noDataReset and E.db.theme then - E:SetupTheme(E.db.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) - 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 = '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.length = "SHORT"; - E.db.unitframe.units.party.debuffs.anchorPoint = 'BOTTOMLEFT'; - E.db.unitframe.units.party.debuffs.initialAnchor = 'TOPLEFT'; - E.db.unitframe.units.party.debuffs.useFilter = 'DebuffBlacklist'; - 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 = "BOTTOMUIParentBOTTOM-305242" - E.db.movers.ElvUF_TargetMover = "BOTTOMUIParentBOTTOM305242" - E.db.movers.ElvUF_Raid40Mover = "BOTTOMUIParentBOTTOM080" - E.db.movers.ElvUF_Raid25Mover = "BOTTOMUIParentBOTTOM080" - E.db.movers.ElvUF_Raid10Mover = "BOTTOMUIParentBOTTOM080" - E.db.movers.ElvUF_TargetTargetMover = "BOTTOMUIParentBOTTOM305187" - E.db.movers.ElvUF_PartyMover = "BOTTOMUIParentBOTTOM0104" - E.db.movers.ElvUF_PetMover = "BOTTOMUIParentBOTTOM-305187" - E.db.movers.ElvUF_FocusMover = "BOTTOMUIParentBOTTOM310432" - - else - E.db.movers.ElvUF_PlayerMover = "BOTTOMLEFTUIParentBOTTOMLEFT464242" - E.db.movers.ElvUF_TargetMover = "BOTTOMRIGHTUIParentBOTTOMRIGHT-464242" - E.db.movers.ElvUF_Raid40Mover = "BOTTOMUIParentBOTTOM050" - E.db.movers.ElvUF_Raid25Mover = "BOTTOMUIParentBOTTOM050" - E.db.movers.ElvUF_Raid10Mover = "BOTTOMUIParentBOTTOM050" - E.db.movers.ElvUF_TargetTargetMover = "BOTTOMRIGHTUIParentBOTTOMRIGHT-464151" - E.db.movers.ElvUF_PartyMover = "BOTTOMUIParentBOTTOM074" - E.db.movers.ElvUF_PetMover = "BOTTOMLEFTUIParentBOTTOMLEFT464151" - E.db.movers.ElvUF_FocusMover = "BOTTOMUIParentBOTTOM280332" - end - elseif E.db.lowresolutionset then - if not E.db.movers then E.db.movers = {}; end - E.db.movers.ElvUF_PlayerMover = "BOTTOMUIParentBOTTOM-106135" - E.db.movers.ElvUF_TargetMover = "BOTTOMUIParentBOTTOM106135" - E.db.movers.ElvUF_TargetTargetMover = "BOTTOMUIParentBOTTOM10680" - E.db.movers.ElvUF_PetMover = "BOTTOMUIParentBOTTOM-10680" - E.db.movers.ElvUF_FocusMover = "BOTTOMUIParentBOTTOM310332" - else - if not noDataReset then - E:ResetMovers('') - 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 - - --Datatexts - if not noDataReset then - E:CopyTable(E.db.datatexts.panels, P.datatexts.panels) - 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.db.theme then - E:SetupTheme(E.db.theme, true) - end - - E:UpdateAll(true) - local DT = E:GetModule('DataTexts') - DT:LoadDataTexts() -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.vendorGrays = true - E.db.general.fontsize = 10 - E.db.general.stickyFrames = false - E.db.general.minimapLocationText = 'SHOW' - E.db.general.panelHeight = 227 - if E.db.lowresolutionset then - E.db.general.panelWidth = 400 - else - E.db.general.panelWidth = 444 - end - --Nameplates - E.db.nameplate.showhealth = true - --Datatexts - 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.dp2.enabled = true - E.db.sle.datatext.dp3.enabled = true - E.db.sle.datatext.dp4.enabled = true - E.db.sle.datatext.dp5.enabled = true - E.db.sle.datatext.dp6.enabled = true - E.db.sle.datatext.chatleft.width = 428 - E.db.sle.datatext.chatright.width = 428 - E.db.sle.datatext.bottom.width = E.screenwidth/10 - 4 - 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 = 'Attack Power'; - 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 = 'Attack Power'; - 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 = 'Mana Regen'; - else - E.db.datatexts.panels.RightChatDataPanel.left = 'Mana Regen'; - 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 - - --Actionbars - E.db.actionbar.hotkeytext = false - if E.db.lowresolutionset then - E.db.movers.ElvAB_2 = "BOTTOMUIParentBOTTOM056" --Need to move up if low resolution is set - else - E.db.actionbar.bar2.enabled = false; --Don't need to hide that if not - end - E.db.actionbar.bar4.enabled = false; - E.db.actionbar.bar1.point = 'TOPLEFT' - E.db.actionbar.bar3.point = 'TOPLEFT' - E.db.actionbar.bar5.point = 'TOPLEFT' - E.db.actionbar.barShapeShift.buttonsize = 25 - E.db.actionbar.barPet.point = 'TOPLEFT' - E.db.actionbar.barPet.buttonsPerRow = 10 - E.db.actionbar.barPet.buttonsize = 22 - --Actionbars moving up - E.db.movers.ElvAB_1 = "BOTTOMUIParentBOTTOM021" - E.db.movers.ShiftAB = "TOPLEFTUIParentTOPLEFT0-21" - if E.db.lowresolutionset then - E.db.movers.PetAB = "BOTTOMElvAB_2TOP10" - else - E.db.movers.PetAB = "BOTTOMElvAB_1TOP10" - end - - --Unitframes - E.db.unitframe.smoothbars = false - E.db.unitframe.fontsize = 9 - E.db.unitframe.debuffHighlighting = false - E.db.unitframe.smartRaidFilter = false - E.db.unitframe.colors.healthclass = true - E.db.unitframe.colors.colorhealthbyvalue = false - E.db.unitframe.colors.classNames = false - E.db.unitframe.fontoutline = 'OUTLINE' - - --The big block for moving all unitframes stuff up - if layout == 'healer' then - 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 = '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.length = "SHORT"; - E.db.unitframe.units.party.debuffs.anchorPoint = 'BOTTOMLEFT'; - E.db.unitframe.units.party.debuffs.initialAnchor = 'TOPLEFT'; - E.db.unitframe.units.party.debuffs.useFilter = 'DebuffBlacklist'; - 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 = "BOTTOMUIParentBOTTOM-305256" - E.db.movers.ElvUF_TargetMover = "BOTTOMUIParentBOTTOM305256" - E.db.movers.ElvUF_Raid40Mover = "BOTTOMUIParentBOTTOM0125" - E.db.movers.ElvUF_Raid25Mover = "BOTTOMUIParentBOTTOM0125" - E.db.movers.ElvUF_Raid10Mover = "BOTTOMUIParentBOTTOM0125" - E.db.movers.ElvUF_TargetTargetMover = "BOTTOMUIParentBOTTOM305203" - E.db.movers.ElvUF_PartyMover = "BOTTOMUIParentBOTTOM0159" - E.db.movers.ElvUF_PetMover = "BOTTOMUIParentBOTTOM-305203" - E.db.movers.ElvUF_FocusMover = "BOTTOMUIParentBOTTOM310432" - E.db.actionbar.bar1.heightMult = 1 - E.db.actionbar.bar2.backdrop = true - - else - E.db.movers.ElvUF_PlayerMover = "BOTTOMLEFTUIParentBOTTOMLEFT464258" - E.db.movers.ElvUF_TargetMover = "BOTTOMRIGHTUIParentBOTTOMRIGHT-464258" - E.db.movers.ElvUF_Raid40Mover = "BOTTOMUIParentBOTTOM095" - E.db.movers.ElvUF_Raid25Mover = "BOTTOMUIParentBOTTOM095" - E.db.movers.ElvUF_Raid10Mover = "BOTTOMUIParentBOTTOM095" - E.db.movers.ElvUF_TargetTargetMover = "BOTTOMRIGHTUIParentBOTTOMRIGHT-464167" - E.db.movers.ElvUF_PartyMover = "BOTTOMUIParentBOTTOM0120" - E.db.movers.ElvUF_PetMover = "BOTTOMLEFTUIParentBOTTOMLEFT464167" - E.db.movers.ElvUF_FocusMover = "BOTTOMUIParentBOTTOM280332" - end - elseif E.db.lowresolutionset then - if not E.db.movers then E.db.movers = {}; end - E.db.movers.ElvUF_PlayerMover = "BOTTOMUIParentBOTTOM-106180" - E.db.movers.ElvUF_TargetMover = "BOTTOMUIParentBOTTOM106180" - E.db.movers.ElvUF_TargetTargetMover = "BOTTOMUIParentBOTTOM106125" - E.db.movers.ElvUF_PetMover = "BOTTOMUIParentBOTTOM-106125" - E.db.movers.ElvUF_FocusMover = "BOTTOMUIParentBOTTOM310332" - E.db.movers.ElvUF_Raid40Mover = "BOTTOMLEFTUIParentBOTTOMLEFT0249" - E.db.movers.ElvUF_Raid25Mover = "BOTTOMLEFTUIParentBOTTOMLEFT0249" - E.db.movers.ElvUF_Raid10Mover = "BOTTOMLEFTUIParentBOTTOMLEFT0249" - E.db.movers.ElvUF_PartyMover = "BOTTOMLEFTUIParentBOTTOMLEFT0249" - E.db.actionbar.bar1.heightMult = 1 - E.db.actionbar.bar2.backdrop = true - else - --[[if not noDataReset then - E:ResetMovers('') - end]] - if not E.db.movers then E.db.movers = {}; end - E.db.movers.ElvUF_PlayerMover = "BOTTOMUIParentBOTTOM-28888" - E.db.movers.ElvUF_TargetMover = "BOTTOMUIParentBOTTOM28888" - E.db.movers.ElvUF_TargetTargetMover = "BOTTOMUIParentBOTTOM0120" - E.db.movers.ElvUF_PetMover = "BOTTOMUIParentBOTTOM0164" - E.db.movers.ElvUF_FocusMover = "BOTTOMUIParentBOTTOM280332" - E.db.movers.ElvUF_Raid40Mover = "BOTTOMLEFTUIParentBOTTOMLEFT0249" - E.db.movers.ElvUF_Raid25Mover = "BOTTOMLEFTUIParentBOTTOMLEFT0249" - E.db.movers.ElvUF_Raid10Mover = "BOTTOMLEFTUIParentBOTTOMLEFT0249" - E.db.movers.ElvUF_PartyMover = "BOTTOMLEFTUIParentBOTTOMLEFT0249" - E.db.movers.ElvAB_1 = "BOTTOMUIParentBOTTOM021" - 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 - - --Setting player frame - E.db.unitframe.units.player.lowmana = 0; - E.db.unitframe.units.player.health.position = 'BOTTOMRIGHT'; - E.db.unitframe.units.player.power.position = 'RIGHT'; - E.db.unitframe.units.player.name.enable = true; - E.db.unitframe.units.player.name.position = 'TOPLEFT'; - 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.classbar.fill = 'fill' - E.db.unitframe.units.player.classbar.height = 8 - --Setting target frame - 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.name.enable = true; - 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 = 8; - E.db.unitframe.units.target.buffs.numrows = 2; - E.db.unitframe.units.target.buffs['growth-x'] = 'RIGHT'; - E.db.unitframe.units.target.buffs.initialAnchor = 'BOTTOMLEFT'; - E.db.unitframe.units.target.buffs.anchorPoint = 'TOPLEFT'; - E.db.unitframe.units.target.debuffs.perrow = 8; - E.db.unitframe.units.target.debuffs.useFilter = 'DebuffBlacklist'; - E.db.unitframe.units.target.debuffs.showPlayerOnly = false; - E.db.unitframe.units.target.castbar.format = 'CURRENTMAX'; - --Target of Target - E.db.unitframe.units.targettarget.debuffs.enable = false - --Focus - E.db.unitframe.units.focus.health.position = 'BOTTOMRIGHT' - E.db.unitframe.units.focus.power.text = true - E.db.unitframe.units.focus.power.height = 10 - E.db.unitframe.units.focus.name.position = 'TOPLEFT' - E.db.unitframe.units.focus.debuffs.perrow = 7 - E.db.unitframe.units.focus.debuffs['growth-y'] = 'UP' - E.db.unitframe.units.focus.castbar.format = 'CURRENTMAX' - --Arena - E.db.unitframe.units.arena.growthDirection = 'DOWN' - E.db.unitframe.units.arena.health.position = 'BOTTOMRIGHT' - 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' - if E.db.lowresolutionset then - E.db.movers.ArenaHeaderMover = "TOPRIGHTUIParentTOPRIGHT-1-240" - else - E.db.movers.ArenaHeaderMover = "TOPRIGHTUIParentTOPRIGHT-1-240" - end - --Boss - E.db.unitframe.units.boss.growthDirection = 'DOWN' - E.db.unitframe.units.boss.health.position = 'BOTTOMRIGHT' - E.db.unitframe.units.boss.power.height = 10 - 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' - if E.db.lowresolutionset then - E.db.movers.BossHeaderMover = "TOPRIGHTUIParentTOPRIGHT-1-240" - else - E.db.movers.BossHeaderMover = "TOPRIGHTUIParentTOPRIGHT-1-240" - end - - --Bags - E.db.bags.yOffset = 225 - --ClassTimers - E.db.classtimer.target.enable = false - --Raid utility - E.db.sle.raidutil.ypos = E.screenheight - 30 - --Exp/Rep Text - E.db.sle.xprepinfo.enabled = true - E.db.sle.xprepinfo.xprepdet = true - E.db.sle.xprepinfo.xprest = true - --PvP text and Combat icon - E.db.sle.pvp.pos = 'BOTTOMLEFT' - E.db.sle.pvp.mouse = false - E.db.sle.combatico.pos = 'TOPRIGHT' - --Chat - E.db.sle.chat.fade = true - E.db.sle.unitframes.reverse.mana = true - --UI buttons - E.db.sle.uibuttons.enable = true - if E.db.lowresolutionset then - E.db.movers.UIBFrameMover = "LEFTUIParentLEFT030" - end - --Minimap and auras - E.db.movers.MinimapMover = "TOPRIGHTUIParentTOPRIGHT-1-21" - E.db.movers.AurasMover = "TOPRIGHTMMHolderTOPLEFT-10" - E.db.movers.BNETMover = "TOPRIGHTArenaHeaderMoverBOTTOMRIGHT0-10" - if E.db.lowresolutionset then - E.db.movers.WatchFrameMover = "TOPRIGHTUIParentTOPRIGHT-300-210" - else - E.db.movers.WatchFrameMover = "BOTTOMLEFTUIParentBOTTOMLEFT1500846" - end - --Ticket frame - E.db.movers.GMMover = "TOPRIGHTBNETMoverBOTTOMRIGHT0-10" - - 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 - - --Actionbars - E.db.actionbar.fontsize = 12 - E.db.actionbar.hotkeytext = true - E.db.actionbar.macrotext = true - E.db.actionbar.bar1.enabled = true - E.db.actionbar.bar1.point = 'TOPLEFT' - E.db.actionbar.bar2.enabled = true - E.db.actionbar.bar2.point = 'TOPLEFT' - - --Chat - E.db.sle.chat.fade = true - E.db.sle.unitframes.reverse.mana = false - E.db.chat.hyperlinkHover = false - E.db.chat.font = "Friz Quadrata TT" - E.db.chat.fontoutline = "OUTLINE" - E.db.scrollDownInterval = 30 - - --Datatexts - E.db.sle.datatext.top.enabled = true - - --Datatext Panels - E.db.sle.datatext.dp1.enabled = true - E.db.sle.datatext.dp2.enabled = true - E.db.sle.datatext.dp3.enabled = true - E.db.sle.datatext.dp4.enabled = true - - --Datatext Panels Presets - E.db.datatexts.panels['DP_1']['right'] = "" - E.db.datatexts.panels['DP_1']['left'] = "" - E.db.datatexts.panels['DP_1']['middle'] = "" - E.db.datatexts.panels['DP_2']['right'] = "Altoholic" - E.db.datatexts.panels['DP_2']['left'] = "Notes" - E.db.datatexts.panels['DP_2']['middle'] = "" - E.db.datatexts.panels['DP_3']['right'] = "WIM" - E.db.datatexts.panels['DP_3']['left'] = "SocialState" - E.db.datatexts.panels['DP_3']['middle'] = "" - E.db.datatexts.panels['DP_4']['right'] = "Time" - E.db.datatexts.panels['DP_4']['left'] = "" - E.db.datatexts.panels['DP_4']['middle'] = "" - E.db.datatexts.panels['DP_5']['right'] = "Haste" - E.db.datatexts.panels['DP_5']['left'] = "Durability" - E.db.datatexts.panels['DP_5']['middle'] = "Crit Chance" - E.db.datatexts.panels['DP_6']['right'] = "Skada" - E.db.datatexts.panels['DP_6']['left'] = "Spell/Heal Power" - E.db.datatexts.panels['DP_6']['middle'] = "Hit Rating" - E.db.datatexts.panels['LeftChatDataPanel']['right'] = "" - E.db.datatexts.panels['LeftChatDataPanel']['left'] = "" - E.db.datatexts.panels['LeftChatDataPanel']['middle'] = "" - E.db.datatexts.panels['RightChatDataPanel']['right'] = "Bags" - E.db.datatexts.panels['RightChatDataPanel']['left'] = "" - E.db.datatexts.panels['RightChatDataPanel']['middle'] = "Gold" - E.db.datatexts.panels['Top_Center'] = "Version" - E.db.datatexts.panels['Bottom_Panel'] = "System" - E.db.datatexts.panels['LeftMiniPanel'] = "" - E.db.datatexts.panels['RightMiniPanel'] = "" - - --Exp/Rep Bar - E.db.general.expRepPos = "MINIMAP_BOTTOM" - E.db.sle.xprepinfo.enabled = true - E.db.sle.xprepinfo.xprepdet = true - E.db.sle.xprepinfo.xprest = true - - --General Options - E.db.general.vendorGrays = true - E.db.general.font = "Accidental Presidency" - E.db.general.interruptAnnounce = "RAID" - E.db.general.autoRepair = "PLAYER" - E.db.general.stickyFrames = false - E.db.general.panelBackdropNameLeft = "Interface\\textures\\chat_1.tga" - E.db.general.panelBackdropNameRight = "Interface\\textures\\chat_1.tga" - E.db.general.vendorGrays = true - E.db.general.elvnotice = true - - --LFR Lockout - E.db.datatexts.lfrshow = true - - --Nameplates - E.db.nameplate.showhealth = true - E.db.nameplate.width = 110 - - --PvP & Combat Icon - E.db.sle.pvp.pos = 'BOTTOMLEFT' - E.db.sle.pvp.mouse = false - E.db.sle.combatico.pos = 'TOPRIGHT' - - --Raid utility - E.db.sle.raidutil.ypos = E.screenheight - 30 - - --Skins - E.db.skins.embedRight = "Skada" - - --Tooltip - E.db.tooltip.anchor = "ANCHOR" - - --UIButtons - E.db.sle.uibuttons.enable = true - - --Unitframes - E.db.unitframe.debuffHighlighting = true - E.db.unitframe.smartRaidFilter = true - E.db.unitframe.smoothbars = true - E.db.unitframe.statusbar = "TukTex" - E.db.unitframe.font = "Accidental Presidency" - --E.db.unitframe.units.font = "Accidental Presidency" - E.db.unitframe.fontsize = 13 - --E.db.unitframe.units.fontsize = 13 - E.db.unitframe.fontoutline = 'NONE' - E.db.unitframe.colors.healthclass = false - E.db.unitframe.colors.colorhealthbyvalue = false - E.db.unitframe.colors.classNames = true - - --Unitframes (Assist) - E.db.unitframe.units.assist.enable = false - - --Unitframes (Player) - E.db.unitframe.units.player.altpower.enable = true - E.db.unitframe.units.player.castbar.format = "CURRENTMAX" - E.db.unitframe.units.player.classbar.fill = "spaced" - E.db.unitframe.units.player.classbar.height = 7 - E.db.unitframe.units.player.health.position = "TOPLEFT" - E.db.unitframe.units.player.health.text = true - E.db.unitframe.units.player.health.text_format = "current-percent" - E.db.unitframe.units.player.lowmana = 30 - E.db.unitframe.units.player.name.enable = true - E.db.unitframe.units.player.name.position = "BOTTOMRIGHT" - E.db.unitframe.units.player.portrait.camDistanceScale = 2.25 - E.db.unitframe.units.player.portrait.enable = true - E.db.unitframe.units.player.portrait.overlay = true - E.db.unitframe.units.player.power.offset = 7 - E.db.unitframe.units.player.power.position = "LEFT" - E.db.unitframe.units.player.power.text = true - E.db.unitframe.units.player.power.text_format = "current" - E.db.unitframe.units.player.restIcon = false - - --Unitframes(Target) - E.db.unitframe.units.target.buffs.anchorPoint = "TOPRIGHT" - E.db.unitframe.units.target.buffs['growth-x'] = "LEFT" - E.db.unitframe.units.target.buffs.initialAnchor = "BOTTOMRIGHT" - E.db.unitframe.units.target.buffs.numrows = 1 - E.db.unitframe.units.target.buffs.perrow = 7 - E.db.unitframe.units.target.castbar.format = "CURRENTMAX" - E.db.unitframe.units.target.debuffs.perrow = 7 - E.db.unitframe.units.target.debuffs.showPlayerOnly = true - E.db.unitframe.units.target.debuffs.useFilter = "CCDebuffs" - E.db.unitframe.units.target.healPrediction = true - E.db.unitframe.units.target.health.position = "TOPRIGHT" - E.db.unitframe.units.target.health.text = true - E.db.unitframe.units.target.health.text_format = "current-percent" - E.db.unitframe.units.target.hideonnpc = true - E.db.unitframe.units.target.name.enable = true - E.db.unitframe.units.target.name.position = "BOTTOMLEFT" - E.db.unitframe.units.target.portrait.camDistanceScale = 2.5 - E.db.unitframe.units.target.portrait.enable = true - E.db.unitframe.units.target.portrait.overlay = true - E.db.unitframe.units.target.power.offset = 7 - E.db.unitframe.units.target.power.position = "RIGHT" - E.db.unitframe.units.target.power.text = true - E.db.unitframe.units.target.power.text_format = "current" - - if E.db.lowresolutionset then - --Actionbars - E.db.actionbar.bar1.heightMult = 2 - E.db.actionbar.bar3.enabled = false - E.db.actionbar.bar4.buttonsize = 25 - E.db.actionbar.bar4.enabled = true - E.db.actionbar.bar4.point = 'TOPLEFT' - E.db.actionbar.bar5.enabled = false - E.db.actionbar.barShapeShift.buttonsize = 25 - - --Datatext Panels - E.db.sle.datatext.dp5.enabled = false - E.db.sle.datatext.dp6.enabled = false - E.db.sle.datatext.bottom.enabled = false - E.db.sle.datatext.chatleft.width = 334 - E.db.sle.datatext.chatright.width = 334 - - --General Options - E.db.general.panelHeight = 180 - E.db.general.panelWidth = 350 - E.db.general.fontsize = 11 - E.db.general.minimapPanels = true - - --Movers - E.db.movers.ShiftAB = "TOPLEFTUIParentTOPLEFT0-21" - E.db.movers.MinimapMover = "TOPRIGHTUIParentTOPRIGHT0-21" - E.db.movers.AurasMover = "TOPRIGHTUIParentTOPRIGHT-213-21" - - else - --Actionbars - E.db.actionbar.bar1.buttonsPerRow = 6 - E.db.actionbar.bar1.buttonspacing = 3 - E.db.actionbar.bar1['paging'][E.myclass] = "[mod:alt] 5;" - - E.db.actionbar.bar2.backdrop = true - E.db.actionbar.bar2.buttonsPerRow = 6 - E.db.actionbar.bar2.buttonspacing = 3 - E.db.actionbar.bar2.enable = true - E.db.actionbar.bar2.mouseover = true - E.db.actionbar.bar2.buttons = 12 - - E.db.actionbar.bar3.buttons = 12 - E.db.actionbar.bar3.buttonspacing = 3 - E.db.actionbar.bar3.enabled = true - E.db.actionbar.bar3.point = 'TOPLEFT' - - E.db.actionbar.bar4.enabled = false - E.db.actionbar.bar4.point = 'TOPLEFT' - E.db.actionbar.bar4.buttonspacing = 3 - E.db.actionbar.bar4.buttonsPerRow = 12 - - E.db.actionbar.bar5.enabled = true - E.db.actionbar.bar5.point = 'TOPLEFT' - E.db.actionbar.bar5.buttons = 12 - E.db.actionbar.bar5.buttonspacing = 3 - - E.db.actionbar.barShapeShift.buttonsize = 31 - E.db.actionbar.barShapeShift.buttonsPerRow = 1 - E.db.actionbar.barShapeShift.buttonspacing = 5 - E.db.actionbar.barShapeShift.backdrop = true - - E.db.actionbar.barPet.buttonsize = 21 - - --Bags - E.db.bags.bagCols = 11 - E.db.bags.yOffset = 245 - - --Datatext Panels - E.db.sle.datatext.dp5.enabled = true - E.db.sle.datatext.dp5.width = 424 - E.db.sle.datatext.dp6.enabled = true - E.db.sle.datatext.dp6.width = 424 - E.db.sle.datatext.bottom.enabled = true - E.db.sle.datatext.chatleft.width = 424 - E.db.sle.datatext.chatright.width = 424 - - --General Options - E.db.general.panelHeight = 243 - E.db.general.panelWidth = 400 - E.db.general.fontsize = 12 - E.db.general.minimapSize = 181 - E.db.general.minimapPanels = false - - --Marks - E.db.sle.marks.size = 15 - - --Microbar - E.db.microbar.enable = false - - --Movers - E.db.movers.ElvAB_1 = "BOTTOMUIParentBOTTOM021" - E.db.movers.ElvAB_2 = "RIGHTUIParentRIGHT0200" - E.db.movers.ElvAB_3 = "RIGHTElvAB_1LEFT00" - E.db.movers.ElvAB_5 = "LEFTElvAB_1RIGHT00" - E.db.movers.ShiftAB = "TOPLEFTUIParentTOPLEFT0-21" - E.db.movers.BossButton = "CENTERUIParentBOTTOMLEFT660968" - E.db.movers.BNETMover = "TOPRIGHTUIParentTOPRIGHT-2-214" - E.db.movers.MinimapMover = "TOPRIGHTUIParentTOPRIGHT-1-21" - E.db.movers.AurasMover = "TOPRIGHTMMHolderTOPLEFT-10" - - --Unitframes (Arena) - E.db.unitframe.units.arena.debuffs.sizeOverride = 45 - E.db.unitframe.units.arena.width = 200 - E.db.unitframe.units.arena.buffs.sizeOverride = 45 - E.db.unitframe.units.arena.buffs.perrow = 4 - E.db.unitframe.units.arena.castbar.width = 200 - - --Unitframes (Boss) - E.db.unitframe.units.boss.debuffs.sizeOverride = 45 - E.db.unitframe.units.boss.width = 200 - E.db.unitframe.units.boss.height = 45 - E.db.unitframe.units.boss.buffs.sizeOverride = 45 - E.db.unitframe.units.boss.buffs.perrow = 4 - E.db.unitframe.units.boss.castbar.width = 200 - E.db.unitframe.units.boss.health.position = "TOPLEFT" - - --Unitframes (Focus) - E.db.unitframe.units.focus.width = 150 - E.db.unitframe.units.focus.castbar.width = 150 - E.db.unitframe.units.focus.castbar.height = 15 - - --Unitframes (Player) - E.db.unitframe.units.player.width = 230 - E.db.unitframe.units.player.height = 50 - E.db.unitframe.units.player.castbar.width = 230 - E.db.unitframe.units.player.castbar.height = 15 - E.db.unitframe.units.player.castbar.format = "CURRENTMAX" - - --Unitframes (Party) - E.db.unitframe.units.party.enable = false - - --Unitframes (Raid10) - E.db.unitframe.units.raid10.showSolo = true - E.db.unitframe.units.raid10.power.position = "BOTTOMLEFT" - E.db.unitframe.units.raid10.power.width = "spaced" - E.db.unitframe.units.raid10.healPrediction = true - E.db.unitframe.units.raid10.width = 70 - E.db.unitframe.units.raid10.health.frequentUpdates = true - E.db.unitframe.units.raid10.health.position = "CENTER" - E.db.unitframe.units.raid10.health.orientation = "VERTICAL" - E.db.unitframe.units.raid10.visibility = "[@raid11,exists] hide;show" - - --Unitframes (Raid25) - E.db.unitframe.units.raid25.width = 70 - E.db.unitframe.units.raid25.health.orientation = "VERTICAL" - E.db.unitframe.units.raid25.healPrediction = true - E.db.unitframe.units.raid25.power.width = "spaced" - - --Unitframes (Raid40) - E.db.unitframe.units.raid40.width = 70 - - --Unitframes (Tank) - E.db.unitframe.units.tank.enable = false - - --Unitframes (Target) - E.db.unitframe.units.target.width = 230 - E.db.unitframe.units.target.height = 50 - E.db.unitframe.units.target.castbar.width = 230 - E.db.unitframe.units.target.castbar.height = 15 - E.db.unitframe.units.target.castbar.format = "CURRENTMAX" - - end - - layout = E.db.layoutSet --To know if some sort of layout was choosed before - - --The big block for moving all unitframes stuff up - if layout == 'healer' then - if not noDataReset then - E.db.unitframe.units.arena.castbar.width = 200 - E.db.unitframe.units.arena.width = 200 - E.db.unitframe.units.boss.castbar.width = 200 - E.db.unitframe.units.boss.width = 200 - E.db.unitframe.units.party.columnAnchorPoint = 'LEFT'; - E.db.unitframe.units.party.debuffs.anchorPoint = 'BOTTOMLEFT'; - E.db.unitframe.units.party.debuffs.initialAnchor = 'TOPLEFT'; - E.db.unitframe.units.party.debuffs.useFilter = 'DebuffBlacklist'; - E.db.unitframe.units.party.debuffs.sizeOverride = 0; - E.db.unitframe.units.party.health.frequentUpdates = true; - E.db.unitframe.units.party.health.text_format = 'deficit'; - E.db.unitframe.units.party.health.position = 'BOTTOM'; - E.db.unitframe.units.party.health.orientation = 'VERTICAL'; - E.db.unitframe.units.party.healPrediction = true; - E.db.unitframe.units.party.height = 52; - E.db.unitframe.units.party.name.position = 'TOP'; - E.db.unitframe.units.party.name.length = "SHORT"; - 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.point = 'LEFT'; - 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.party.width = 80; - E.db.unitframe.units.party.xOffset = 5; - E.db.unitframe.units.raid25.health.frequentUpdates = true; - E.db.unitframe.units.raid25.healPrediction = true; - E.db.unitframe.units.raid25.health.orientation = 'VERTICAL'; - 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.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 - print("Healer low res selected"); - E.db.movers.ElvUF_PlayerMover = "LEFTUIParentLEFT-300250" - E.db.movers.ElvUF_TargetMover = "BOTTOMUIParentBOTTOM300250" - E.db.movers.ElvUF_Raid10Mover = "BOTTOMUIParentBOTTOM0100" - E.db.movers.ElvUF_Raid25Mover = "BOTTOMUIParentBOTTOM0100" - E.db.movers.ElvUF_Raid40Mover = "BOTTOMUIParentBOTTOM0100" - E.db.movers.ElvUF_TargetTargetMover = "BOTTOMUIParentBOTTOM305203" - E.db.movers.ElvUF_PartyMover = "BOTTOMUIParentBOTTOM0100" - E.db.movers.ElvUF_PetMover = "BOTTOMUIParentBOTTOM-305203" - E.db.movers.ElvUF_FocusMover = "BOTTOMUIParentBOTTOM310432" - E.db.movers.MarkMover = "BOTTOMUIParentBOTTOM0165" - else - print("Healer high res selected"); - E.db.movers.ElvUF_PlayerMover = "BOTTOMUIParentBOTTOM-300265" - E.db.movers.ElvUF_TargetMover = "BOTTOMUIParentBOTTOM300265" - E.db.movers.ElvUF_PartyMover = "BOTTOMUIParentBOTTOM0105" - E.db.movers.ElvUF_Raid10Mover = "BOTTOMUIParentBOTTOM0105" - E.db.movers.ElvUF_Raid25Mover = "BOTTOMUIParentBOTTOM0105" - E.db.movers.ElvUF_Raid40Mover = "BOTTOMUIParentBOTTOM0105" - E.db.movers.ElvUF_TargetTargetMover = "BOTTOMRIGHTUIParentBOTTOMRIGHT-464167" - E.db.movers.ElvUF_PetMover = "BOTTOMUIParentBOTTOM-420135" - E.db.movers.ElvUF_FocusMover = "BOTTOMLEFTUIParentBOTTOM560265" - E.db.movers.MarkMover = "BOTTOMUIParentBOTTOM-285200" - - end - elseif E.db.lowresolutionset then - if not E.db.movers then E.db.movers = {}; end - print("None healer low res selected"); - E.db.movers.ElvUF_PlayerMover = "BOTTOMUIParentBOTTOM00" - E.db.movers.ElvUF_TargetMover = "BOTTOMUIParentBOTTOM106151" - E.db.movers.ElvUF_TargetTargetMover = "BOTTOMUIParentBOTTOM10696" - E.db.movers.ElvUF_PetMover = "BOTTOMUIParentBOTTOM-10696" - E.db.movers.ElvUF_FocusMover = "BOTTOMUIParentBOTTOM310332" - else - --[[if not noDataReset then - E:ResetMovers('') - end]] - if not E.db.movers then E.db.movers = {}; end - print("None healer high res selected"); - --This section appears to be done - E.db.movers.ElvUF_PlayerMover = "BOTTOMUIParentBOTTOM-185135" - E.db.movers.ElvUF_TargetMover = "BOTTOMUIParentBOTTOM185135" - E.db.movers.ElvUF_TargetTargetMover = "BOTTOMUIParentBOTTOM0120" - E.db.movers.ElvUF_PetMover = "BOTTOMUIParentBOTTOM-420135" - E.db.movers.ElvUF_FocusMover = "BOTTOMLEFTUIParentBOTTOM560265" - E.db.movers.ElvUF_PartyMover = "BOTTOMLEFTUIParentBOTTOMLEFT0263" - E.db.movers.ElvUF_Raid10Mover = "BOTTOMLEFTUIParentBOTTOMLEFT0263" - E.db.movers.ElvUF_Raid25Mover = "BOTTOMLEFTUIParentBOTTOMLEFT0263" - E.db.movers.ElvUF_Raid40Mover = "BOTTOMLEFTUIParentBOTTOMLEFT0263" - E.db.movers.MarkMover = "BOTTOMUIParentBOTTOM0165" - 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 - - E:UpdateAll(true) -end - -function E:ElvSetup() --The function to restore defaults. not finished yet lol - InstallStepComplete.message = L["Elv's Defaults Set"] - InstallStepComplete:Show() - if not E.db.movers then E.db.movers = {}; end - --Set to defaults. Every module is listed just in case. - E:CopyTable(E.db.general, P.general) --General options - E:CopyTable(E.db.nameplate, P.nameplate) --Nameplates - E:CopyTable(E.db.datatexts, P.datatexts) --Datatexts - E:CopyTable(E.db.actionbar, P.actionbar) --Actionbars - E:CopyTable(E.db.tooltip, P.tooltip) --Tooltip - E:CopyTable(E.db.unitframe, P.unitframe) --Unitframes - E:CopyTable(E.db.skins, P.skins) --Skins - E:CopyTable(E.db.bags, P.bags) --Bags - E:CopyTable(E.db.classtimer, P.classtimer) --ClassTimers - E:CopyTable(E.db.chat, P.chat) --Chat - E:CopyTable(E.db.sle, P.sle) --Edit's main defaults - E:CopyTable(E.db.microbar, P.microbar) --Microbar - --Move every bar and panel to the defaults. - E:ResetUI() --Reseting positions - StaticPopup3Button1:Click() --this is automatic click on confirm for reseting movers - - E:UpdateAll(true) -end - -local function InstallComplete() - E.db.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("") - InstallTutorialImage:Size(250) - InstallTutorialImage:SetTexture(nil) - InstallTutorialImage:Hide() - ElvUIInstallFrame:Size(550, 400) -end - -local function SetPage(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 - - InstallTutorialImage:Size(256, 128) - InstallTutorialImage:SetTexture('Interface\\AddOns\\ElvUI_SLE\\textures\\logo_elvui_sle.tga') - InstallTutorialImage:Show() - - 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['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('classic_pixel') end) - InstallOption2Button:SetText(L['Classic Pixel']) - InstallOption3Button:Show() - InstallOption3Button:SetScript('OnClick', function() E:SetupTheme('default') end) - InstallOption3Button:SetText(DEFAULT) - InstallOption4Button:Show() - InstallOption4Button:SetScript('OnClick', function() E:SetupTheme('class') end) - InstallOption4Button:SetText(CLASS) - elseif PageNum == 5 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 == 6 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 == 7 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:SetupTheme('class'); E:RepoocSetup() end) - InstallOption2Button:SetText(L["Repooc's Config"]) - InstallOption3Button:Show() - InstallOption3Button:SetScript('OnClick', function() E:ElvSetup() end) - InstallOption3Button:SetText(L["Elv's Defaults"]) - elseif PageNum == 8 then - f.SubTitle:SetText(L["Installation Complete"]) - f.Desc1:SetText(L["You are now finished with the installation process. Bonus Hint: If you wish to access blizzard micro menu, middle click on the minimap. If you don't have a middle click button then hold down shift and right click the minimap. If you are in need of technical support please visit us at 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"]) - InstallTutorialImage:Show() - InstallTutorialImage:SetTexture([[Interface\AddOns\ElvUI\media\textures\micromenu_tutorial.tga]]) - ElvUIInstallFrame:Size(550, 500) - InstallTutorialImage:Size(250) - 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() - E.db.datatexts.panels.Top_Center = 'Version' - E:GetModule('DataTexts'):LoadDataTexts() - - 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:Size(550, 400) - f:SetTemplate("Transparent") - f:CreateShadow("Default") - 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, "UIPanelButtonTemplate2") - 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, "UIPanelButtonTemplate2") - 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, "UIPanelButtonTemplate2") - 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, "UIPanelButtonTemplate2") - 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, "UIPanelButtonTemplate2") - 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, "UIPanelButtonTemplate2") - 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(250) - 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 = 8 + +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_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 == "Elv" 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") + + --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("showNewbieTips", 0) + SetCVar("showLootSpam", 1) + SetCVar("UberTooltips", 1) + SetCVar("threatWarning", 3) + SetCVar('alwaysShowActionBars', 1) + SetCVar('lockActionBars', 1) + 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:SetupTheme(theme, noDisplayMsg) + local classColor = RAID_CLASS_COLORS[E.myclass] + E.db.theme = theme + + --Set fonts + if theme == "classic" then + E.db.general.font = "ElvUI Font" + E.db.general.fontsize = 12 + + E.db.unitframe.font = "ElvUI Font" + E.db.unitframe.fontsize = 12 + E.db.unitframe.fontoutline = "OUTLINE" + else + E.db.general.font = "ElvUI Pixel" + E.db.general.fontsize = 11 + + E.db.unitframe.font = "ElvUI Pixel" + E.db.unitframe.fontsize = 10 + E.db.unitframe.fontoutline = "MONOCHROMEOUTLINE" + end + + --Set colors + if theme == "classic" or theme == "classic_pixel" 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.units.player.castbar.color = E:GetColor(.31, .31, .31) + E.db.unitframe.units.target.castbar.color = E:GetColor(.31, .31, .31) + E.db.unitframe.units.focus.castbar.color = E:GetColor(.31, .31, .31) + E.db.unitframe.units.boss.castbar.color = E:GetColor(.31, .31, .31) + E.db.unitframe.units.arena.castbar.color = E:GetColor(.31, .31, .31) + + E.db.classtimer.player.buffcolor = E:GetColor(.31, .31, .31) + E.db.classtimer.target.buffcolor = E:GetColor(.31, .31, .31) + elseif theme == "class" then + E.db.general.bordercolor = E:GetColor(classColor.r, classColor.b, classColor.g) + E.db.general.backdropcolor = E:GetColor(.1, .1, .1) + E.db.general.backdropfadecolor = E:GetColor(.06, .06, .06, .8) + + E.db.unitframe.colors.healthclass = true + E.db.unitframe.units.player.castbar.color = E:GetColor(classColor.r, classColor.b, classColor.g) + E.db.unitframe.units.target.castbar.color = E:GetColor(classColor.r, classColor.b, classColor.g) + E.db.unitframe.units.focus.castbar.color = E:GetColor(classColor.r, classColor.b, classColor.g) + E.db.unitframe.units.boss.castbar.color = E:GetColor(classColor.r, classColor.b, classColor.g) + E.db.unitframe.units.arena.castbar.color = E:GetColor(classColor.r, classColor.b, classColor.g) + + E.db.classtimer.player.buffcolor = E:GetColor(classColor.r, classColor.b, classColor.g) + E.db.classtimer.target.buffcolor = 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.healthclass = false + E.db.unitframe.colors.health = E:GetColor(.1, .1, .1) + E.db.unitframe.units.player.castbar.color = E:GetColor(.1, .1, .1) + E.db.unitframe.units.target.castbar.color = E:GetColor(.1, .1, .1) + E.db.unitframe.units.focus.castbar.color = E:GetColor(.1, .1, .1) + E.db.unitframe.units.boss.castbar.color = E:GetColor(.1, .1, .1) + E.db.unitframe.units.arena.castbar.color = E:GetColor(.1, .1, .1) + + E.db.classtimer.player.buffcolor = E:GetColor(.1, .1, .1) + E.db.classtimer.target.buffcolor = 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 + + E:UpdateAll(true) + + InstallStatus:SetStatusBarColor(unpack(E['media'].rgbvaluecolor)) + + if InstallStepComplete and not noDisplayMsg then + InstallStepComplete.message = L["Theme Set"] + InstallStepComplete:Show() + 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.general.panelWidth = 400 + E.db.general.panelHeight = 180 + E.db.sle.datatext.chatleft.width = 384 + E.db.sle.datatext.chatright.width = 384 + + 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 + + E.db.movers.ElvAB_2 = "CENTERUIParentBOTTOM056.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.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 + + E.db.movers.ElvUF_PlayerMover = "BOTTOMUIParentBOTTOM-106135" + E.db.movers.ElvUF_TargetTargetMover = "BOTTOMUIParentBOTTOM10680" + E.db.movers.ElvUF_TargetMover = "BOTTOMUIParentBOTTOM106135" + E.db.movers.ElvUF_PetMover = "BOTTOMUIParentBOTTOM-10680" + E.db.movers.ElvUF_FocusMover = "BOTTOMUIParentBOTTOM310332" + + E.db.lowresolutionset = true; + elseif not noDataReset then + E.db.general.panelWidth = P.general.panelWidth + E.db.general.panelHeight = P.general.panelHeight + + E:CopyTable(E.db.actionbar, P.actionbar) + E:CopyTable(E.db.unitframe.units, P.unitframe.units) + + E.db.lowresolutionset = nil; + end + + if not noDataReset and E.db.theme then + E:SetupTheme(E.db.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) + 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 = '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.length = "SHORT"; + E.db.unitframe.units.party.debuffs.anchorPoint = 'BOTTOMLEFT'; + E.db.unitframe.units.party.debuffs.initialAnchor = 'TOPLEFT'; + E.db.unitframe.units.party.debuffs.useFilter = 'DebuffBlacklist'; + 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 = "BOTTOMUIParentBOTTOM-305242" + E.db.movers.ElvUF_TargetMover = "BOTTOMUIParentBOTTOM305242" + E.db.movers.ElvUF_Raid40Mover = "BOTTOMUIParentBOTTOM080" + E.db.movers.ElvUF_Raid25Mover = "BOTTOMUIParentBOTTOM080" + E.db.movers.ElvUF_Raid10Mover = "BOTTOMUIParentBOTTOM080" + E.db.movers.ElvUF_TargetTargetMover = "BOTTOMUIParentBOTTOM305187" + E.db.movers.ElvUF_PartyMover = "BOTTOMUIParentBOTTOM0104" + E.db.movers.ElvUF_PetMover = "BOTTOMUIParentBOTTOM-305187" + E.db.movers.ElvUF_FocusMover = "BOTTOMUIParentBOTTOM310432" + + else + E.db.movers.ElvUF_PlayerMover = "BOTTOMLEFTUIParentBOTTOMLEFT464242" + E.db.movers.ElvUF_TargetMover = "BOTTOMRIGHTUIParentBOTTOMRIGHT-464242" + E.db.movers.ElvUF_Raid40Mover = "BOTTOMUIParentBOTTOM050" + E.db.movers.ElvUF_Raid25Mover = "BOTTOMUIParentBOTTOM050" + E.db.movers.ElvUF_Raid10Mover = "BOTTOMUIParentBOTTOM050" + E.db.movers.ElvUF_TargetTargetMover = "BOTTOMRIGHTUIParentBOTTOMRIGHT-464151" + E.db.movers.ElvUF_PartyMover = "BOTTOMUIParentBOTTOM074" + E.db.movers.ElvUF_PetMover = "BOTTOMLEFTUIParentBOTTOMLEFT464151" + E.db.movers.ElvUF_FocusMover = "BOTTOMUIParentBOTTOM280332" + end + elseif E.db.lowresolutionset then + if not E.db.movers then E.db.movers = {}; end + E.db.movers.ElvUF_PlayerMover = "BOTTOMUIParentBOTTOM-106135" + E.db.movers.ElvUF_TargetMover = "BOTTOMUIParentBOTTOM106135" + E.db.movers.ElvUF_TargetTargetMover = "BOTTOMUIParentBOTTOM10680" + E.db.movers.ElvUF_PetMover = "BOTTOMUIParentBOTTOM-10680" + E.db.movers.ElvUF_FocusMover = "BOTTOMUIParentBOTTOM310332" + else + if not noDataReset then + E:ResetMovers('') + 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 + + --Datatexts + if not noDataReset then + E:CopyTable(E.db.datatexts.panels, P.datatexts.panels) + 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.db.theme then + E:SetupTheme(E.db.theme, true) + end + + E:UpdateAll(true) + local DT = E:GetModule('DataTexts') + DT:LoadDataTexts() +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.vendorGrays = true + E.db.general.fontsize = 10 + E.db.general.stickyFrames = false + E.db.general.minimapLocationText = 'SHOW' + E.db.general.panelHeight = 227 + if E.db.lowresolutionset then + E.db.general.panelWidth = 400 + else + E.db.general.panelWidth = 444 + end + --Nameplates + E.db.nameplate.showhealth = true + --Datatexts + 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.dp2.enabled = true + E.db.sle.datatext.dp3.enabled = true + E.db.sle.datatext.dp4.enabled = true + E.db.sle.datatext.dp5.enabled = true + E.db.sle.datatext.dp6.enabled = true + E.db.sle.datatext.chatleft.width = 428 + E.db.sle.datatext.chatright.width = 428 + E.db.sle.datatext.bottom.width = E.screenwidth/10 - 4 + 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 = 'Attack Power'; + 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 = 'Attack Power'; + 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 = 'Mana Regen'; + else + E.db.datatexts.panels.RightChatDataPanel.left = 'Mana Regen'; + 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 + + --Actionbars + E.db.actionbar.hotkeytext = false + if E.db.lowresolutionset then + E.db.movers.ElvAB_2 = "BOTTOMUIParentBOTTOM056" --Need to move up if low resolution is set + else + E.db.actionbar.bar2.enabled = false; --Don't need to hide that if not + end + E.db.actionbar.bar4.enabled = false; + E.db.actionbar.bar1.point = 'TOPLEFT' + E.db.actionbar.bar3.point = 'TOPLEFT' + E.db.actionbar.bar5.point = 'TOPLEFT' + E.db.actionbar.barShapeShift.buttonsize = 25 + E.db.actionbar.barPet.point = 'TOPLEFT' + E.db.actionbar.barPet.buttonsPerRow = 10 + E.db.actionbar.barPet.buttonsize = 22 + --Actionbars moving up + E.db.movers.ElvAB_1 = "BOTTOMUIParentBOTTOM021" + E.db.movers.ShiftAB = "TOPLEFTUIParentTOPLEFT0-21" + if E.db.lowresolutionset then + E.db.movers.PetAB = "BOTTOMElvAB_2TOP10" + else + E.db.movers.PetAB = "BOTTOMElvAB_1TOP10" + end + + --Unitframes + E.db.unitframe.smoothbars = false + E.db.unitframe.fontsize = 9 + E.db.unitframe.debuffHighlighting = false + E.db.unitframe.smartRaidFilter = false + E.db.unitframe.colors.healthclass = true + E.db.unitframe.colors.colorhealthbyvalue = false + E.db.unitframe.colors.classNames = false + E.db.unitframe.fontoutline = 'OUTLINE' + + --The big block for moving all unitframes stuff up + if layout == 'healer' then + 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 = '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.length = "SHORT"; + E.db.unitframe.units.party.debuffs.anchorPoint = 'BOTTOMLEFT'; + E.db.unitframe.units.party.debuffs.initialAnchor = 'TOPLEFT'; + E.db.unitframe.units.party.debuffs.useFilter = 'DebuffBlacklist'; + 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 = "BOTTOMUIParentBOTTOM-305256" + E.db.movers.ElvUF_TargetMover = "BOTTOMUIParentBOTTOM305256" + E.db.movers.ElvUF_Raid40Mover = "BOTTOMUIParentBOTTOM0125" + E.db.movers.ElvUF_Raid25Mover = "BOTTOMUIParentBOTTOM0125" + E.db.movers.ElvUF_Raid10Mover = "BOTTOMUIParentBOTTOM0125" + E.db.movers.ElvUF_TargetTargetMover = "BOTTOMUIParentBOTTOM305203" + E.db.movers.ElvUF_PartyMover = "BOTTOMUIParentBOTTOM0159" + E.db.movers.ElvUF_PetMover = "BOTTOMUIParentBOTTOM-305203" + E.db.movers.ElvUF_FocusMover = "BOTTOMUIParentBOTTOM310432" + E.db.actionbar.bar1.heightMult = 1 + E.db.actionbar.bar2.backdrop = true + + else + E.db.movers.ElvUF_PlayerMover = "BOTTOMLEFTUIParentBOTTOMLEFT464258" + E.db.movers.ElvUF_TargetMover = "BOTTOMRIGHTUIParentBOTTOMRIGHT-464258" + E.db.movers.ElvUF_Raid40Mover = "BOTTOMUIParentBOTTOM095" + E.db.movers.ElvUF_Raid25Mover = "BOTTOMUIParentBOTTOM095" + E.db.movers.ElvUF_Raid10Mover = "BOTTOMUIParentBOTTOM095" + E.db.movers.ElvUF_TargetTargetMover = "BOTTOMRIGHTUIParentBOTTOMRIGHT-464167" + E.db.movers.ElvUF_PartyMover = "BOTTOMUIParentBOTTOM0120" + E.db.movers.ElvUF_PetMover = "BOTTOMLEFTUIParentBOTTOMLEFT464167" + E.db.movers.ElvUF_FocusMover = "BOTTOMUIParentBOTTOM280332" + end + elseif E.db.lowresolutionset then + if not E.db.movers then E.db.movers = {}; end + E.db.movers.ElvUF_PlayerMover = "BOTTOMUIParentBOTTOM-106180" + E.db.movers.ElvUF_TargetMover = "BOTTOMUIParentBOTTOM106180" + E.db.movers.ElvUF_TargetTargetMover = "BOTTOMUIParentBOTTOM106125" + E.db.movers.ElvUF_PetMover = "BOTTOMUIParentBOTTOM-106125" + E.db.movers.ElvUF_FocusMover = "BOTTOMUIParentBOTTOM310332" + E.db.movers.ElvUF_Raid40Mover = "BOTTOMLEFTUIParentBOTTOMLEFT0249" + E.db.movers.ElvUF_Raid25Mover = "BOTTOMLEFTUIParentBOTTOMLEFT0249" + E.db.movers.ElvUF_Raid10Mover = "BOTTOMLEFTUIParentBOTTOMLEFT0249" + E.db.movers.ElvUF_PartyMover = "BOTTOMLEFTUIParentBOTTOMLEFT0249" + E.db.actionbar.bar1.heightMult = 1 + E.db.actionbar.bar2.backdrop = true + else + --[[if not noDataReset then + E:ResetMovers('') + end]] + if not E.db.movers then E.db.movers = {}; end + E.db.movers.ElvUF_PlayerMover = "BOTTOMUIParentBOTTOM-28888" + E.db.movers.ElvUF_TargetMover = "BOTTOMUIParentBOTTOM28888" + E.db.movers.ElvUF_TargetTargetMover = "BOTTOMUIParentBOTTOM0120" + E.db.movers.ElvUF_PetMover = "BOTTOMUIParentBOTTOM0164" + E.db.movers.ElvUF_FocusMover = "BOTTOMUIParentBOTTOM280332" + E.db.movers.ElvUF_Raid40Mover = "BOTTOMLEFTUIParentBOTTOMLEFT0249" + E.db.movers.ElvUF_Raid25Mover = "BOTTOMLEFTUIParentBOTTOMLEFT0249" + E.db.movers.ElvUF_Raid10Mover = "BOTTOMLEFTUIParentBOTTOMLEFT0249" + E.db.movers.ElvUF_PartyMover = "BOTTOMLEFTUIParentBOTTOMLEFT0249" + E.db.movers.ElvAB_1 = "BOTTOMUIParentBOTTOM021" + 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 + + --Setting player frame + E.db.unitframe.units.player.lowmana = 0; + E.db.unitframe.units.player.health.position = 'BOTTOMRIGHT'; + E.db.unitframe.units.player.power.position = 'RIGHT'; + E.db.unitframe.units.player.name.enable = true; + E.db.unitframe.units.player.name.position = 'TOPLEFT'; + 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.classbar.fill = 'fill' + E.db.unitframe.units.player.classbar.height = 8 + --Setting target frame + 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.name.enable = true; + 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 = 8; + E.db.unitframe.units.target.buffs.numrows = 2; + E.db.unitframe.units.target.buffs['growth-x'] = 'RIGHT'; + E.db.unitframe.units.target.buffs.initialAnchor = 'BOTTOMLEFT'; + E.db.unitframe.units.target.buffs.anchorPoint = 'TOPLEFT'; + E.db.unitframe.units.target.debuffs.perrow = 8; + E.db.unitframe.units.target.debuffs.useFilter = 'DebuffBlacklist'; + E.db.unitframe.units.target.debuffs.showPlayerOnly = false; + E.db.unitframe.units.target.castbar.format = 'CURRENTMAX'; + --Target of Target + E.db.unitframe.units.targettarget.debuffs.enable = false + --Focus + E.db.unitframe.units.focus.health.position = 'BOTTOMRIGHT' + E.db.unitframe.units.focus.power.text = true + E.db.unitframe.units.focus.power.height = 10 + E.db.unitframe.units.focus.name.position = 'TOPLEFT' + E.db.unitframe.units.focus.debuffs.perrow = 7 + E.db.unitframe.units.focus.debuffs['growth-y'] = 'UP' + E.db.unitframe.units.focus.castbar.format = 'CURRENTMAX' + --Arena + E.db.unitframe.units.arena.growthDirection = 'DOWN' + E.db.unitframe.units.arena.health.position = 'BOTTOMRIGHT' + 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' + if E.db.lowresolutionset then + E.db.movers.ArenaHeaderMover = "TOPRIGHTUIParentTOPRIGHT-1-240" + else + E.db.movers.ArenaHeaderMover = "TOPRIGHTUIParentTOPRIGHT-1-240" + end + --Boss + E.db.unitframe.units.boss.growthDirection = 'DOWN' + E.db.unitframe.units.boss.health.position = 'BOTTOMRIGHT' + E.db.unitframe.units.boss.power.height = 10 + 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' + if E.db.lowresolutionset then + E.db.movers.BossHeaderMover = "TOPRIGHTUIParentTOPRIGHT-1-240" + else + E.db.movers.BossHeaderMover = "TOPRIGHTUIParentTOPRIGHT-1-240" + end + + --Bags + E.db.bags.yOffset = 225 + --ClassTimers + E.db.classtimer.target.enable = false + --Raid utility + E.db.sle.raidutil.ypos = E.screenheight - 30 + --Exp/Rep Text + E.db.sle.xprepinfo.enabled = true + E.db.sle.xprepinfo.xprepdet = true + E.db.sle.xprepinfo.xprest = true + --PvP text and Combat icon + E.db.sle.pvp.pos = 'BOTTOMLEFT' + E.db.sle.pvp.mouse = false + E.db.sle.combatico.pos = 'TOPRIGHT' + --Chat + E.db.sle.chat.fade = true + E.db.sle.unitframes.reverse.mana = true + --UI buttons + E.db.sle.uibuttons.enable = true + if E.db.lowresolutionset then + E.db.movers.UIBFrameMover = "LEFTUIParentLEFT030" + end + --Minimap and auras + E.db.movers.MinimapMover = "TOPRIGHTUIParentTOPRIGHT-1-21" + E.db.movers.AurasMover = "TOPRIGHTMMHolderTOPLEFT-10" + E.db.movers.BNETMover = "TOPRIGHTArenaHeaderMoverBOTTOMRIGHT0-10" + if E.db.lowresolutionset then + E.db.movers.WatchFrameMover = "TOPRIGHTUIParentTOPRIGHT-300-210" + else + E.db.movers.WatchFrameMover = "BOTTOMLEFTUIParentBOTTOMLEFT1500846" + end + --Ticket frame + E.db.movers.GMMover = "TOPRIGHTBNETMoverBOTTOMRIGHT0-10" + + 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 + + --Actionbars + E.db.actionbar.fontsize = 12 + E.db.actionbar.hotkeytext = true + E.db.actionbar.macrotext = true + E.db.actionbar.bar1.enabled = true + E.db.actionbar.bar2.enabled = true + E.db.actionbar.bar2.point = 'TOPLEFT' + + --Chat + E.db.sle.chat.fade = true + E.db.sle.unitframes.reverse.mana = false + E.db.chat.hyperlinkHover = false + E.db.chat.font = "Friz Quadrata TT" + E.db.chat.fontoutline = "OUTLINE" + E.db.scrollDownInterval = 30 + + --Datatexts + E.db.sle.datatext.top.enabled = true + + --Datatext Panels + E.db.sle.datatext.dp1.enabled = true + E.db.sle.datatext.dp2.enabled = true + E.db.sle.datatext.dp3.enabled = true + E.db.sle.datatext.dp4.enabled = true + + --Datatext Panels Presets + E.db.datatexts.panels['DP_1']['right'] = "" + E.db.datatexts.panels['DP_1']['left'] = "" + E.db.datatexts.panels['DP_1']['middle'] = "" + E.db.datatexts.panels['DP_2']['right'] = "Altoholic" + E.db.datatexts.panels['DP_2']['left'] = "Notes" + E.db.datatexts.panels['DP_4']['right'] = "Time" + E.db.datatexts.panels['DP_5']['right'] = "Haste" + E.db.datatexts.panels['DP_5']['left'] = "Durability" + E.db.datatexts.panels['DP_5']['middle'] = "Crit Chance" + E.db.datatexts.panels['DP_6']['right'] = "Skada" + E.db.datatexts.panels['DP_6']['left'] = "Spell/Heal Power" + E.db.datatexts.panels['DP_6']['middle'] = "Hit Rating" + E.db.datatexts.panels['LeftChatDataPanel']['right'] = "" + E.db.datatexts.panels['LeftChatDataPanel']['left'] = "" + E.db.datatexts.panels['LeftChatDataPanel']['middle'] = "" + E.db.datatexts.panels['RightChatDataPanel']['right'] = "Bags" + E.db.datatexts.panels['Top_Center'] = "Version" + E.db.datatexts.panels['Bottom_Panel'] = "System" + E.db.datatexts.panels['LeftMiniPanel'] = "" + E.db.datatexts.panels['RightMiniPanel'] = "" + + --Exp/Rep Bar + E.db.general.expRepPos = "MINIMAP_BOTTOM" + E.db.sle.xprepinfo.enabled = true + E.db.sle.xprepinfo.xprepdet = true + E.db.sle.xprepinfo.xprest = true + + --General Options + E.db.general.vendorGrays = true + E.db.general.font = "Accidental Presidency" + E.db.general.interruptAnnounce = "RAID" + E.db.general.autoRepair = "PLAYER" + E.db.general.stickyFrames = false + E.db.general.panelBackdropNameLeft = "Interface\\textures\\chat_1.tga" + E.db.general.panelBackdropNameRight = "Interface\\textures\\chat_1.tga" + E.db.general.vendorGrays = true + E.db.general.elvnotice = true + + --LFR Lockout + E.db.datatexts.lfrshow = true + + --Microbar + E.db.microbar.enable = false + + --Movers + E.db.movers.ShiftAB = "TOPLEFTUIParentTOPLEFT0-21" + E.db.movers.MinimapMover = "TOPRIGHTUIParentTOPRIGHT-1-21" + E.db.movers.AurasMover = "TOPRIGHTMMHolderTOPLEFT-10" + + --Nameplates + E.db.nameplate.showhealth = true + E.db.nameplate.width = 110 + + --PvP & Combat Icon + E.db.sle.pvp.pos = 'BOTTOMLEFT' + E.db.sle.pvp.mouse = false + E.db.sle.combatico.pos = 'TOPRIGHT' + + --Raid utility + E.db.sle.raidutil.ypos = E.screenheight - 30 + + --Skins + E.db.skins.embedRight = "Skada" + + --Tooltip + E.db.tooltip.anchor = "ANCHOR" + + --UIButtons + E.db.sle.uibuttons.enable = true + + --Unitframes + E.db.unitframe.debuffHighlighting = true + E.db.unitframe.smartRaidFilter = true + E.db.unitframe.smoothbars = true + E.db.unitframe.statusbar = "TukTex" + E.db.unitframe.font = "Accidental Presidency" + E.db.unitframe.fontsize = 13 + E.db.unitframe.fontoutline = 'NONE' + E.db.unitframe.colors.healthclass = false + E.db.unitframe.colors.colorhealthbyvalue = false + E.db.unitframe.colors.classNames = true + + --Unitframes (Assist) + E.db.unitframe.units.assist.enable = false + + --Unitframes (Player) + E.db.unitframe.units.player.altpower.enable = true + E.db.unitframe.units.player.castbar.format = "CURRENTMAX" + E.db.unitframe.units.player.classbar.fill = "spaced" + E.db.unitframe.units.player.classbar.height = 7 + E.db.unitframe.units.player.health.position = "TOPLEFT" + E.db.unitframe.units.player.health.text = true + E.db.unitframe.units.player.health.text_format = "current-percent" + E.db.unitframe.units.player.lowmana = 30 + E.db.unitframe.units.player.name.enable = true + E.db.unitframe.units.player.name.position = "BOTTOMRIGHT" + E.db.unitframe.units.player.portrait.camDistanceScale = 2.25 + E.db.unitframe.units.player.portrait.enable = true + E.db.unitframe.units.player.portrait.overlay = true + E.db.unitframe.units.player.power.offset = 7 + E.db.unitframe.units.player.power.position = "LEFT" + E.db.unitframe.units.player.power.text = true + E.db.unitframe.units.player.power.text_format = "current" + E.db.unitframe.units.player.restIcon = false + + --Unitframes (Target) + E.db.unitframe.units.target.buffs.anchorPoint = "TOPRIGHT" + E.db.unitframe.units.target.buffs['growth-x'] = "LEFT" + E.db.unitframe.units.target.buffs.initialAnchor = "BOTTOMRIGHT" + E.db.unitframe.units.target.buffs.numrows = 1 + E.db.unitframe.units.target.buffs.perrow = 7 + E.db.unitframe.units.target.castbar.format = "CURRENTMAX" + E.db.unitframe.units.target.debuffs.perrow = 7 + E.db.unitframe.units.target.debuffs.showPlayerOnly = true + E.db.unitframe.units.target.debuffs.useFilter = "CCDebuffs" + E.db.unitframe.units.target.healPrediction = true + E.db.unitframe.units.target.health.position = "TOPRIGHT" + E.db.unitframe.units.target.health.text = true + E.db.unitframe.units.target.health.text_format = "current-percent" + E.db.unitframe.units.target.hideonnpc = true + E.db.unitframe.units.target.name.enable = true + E.db.unitframe.units.target.name.position = "BOTTOMLEFT" + E.db.unitframe.units.target.portrait.camDistanceScale = 2.5 + E.db.unitframe.units.target.portrait.enable = true + E.db.unitframe.units.target.portrait.overlay = true + E.db.unitframe.units.target.power.offset = 7 + E.db.unitframe.units.target.power.position = "RIGHT" + E.db.unitframe.units.target.power.text = true + E.db.unitframe.units.target.power.text_format = "current" + + --Unitframes (Raid10) + E.db.unitframe.units.raid10.showSolo = true + E.db.unitframe.units.raid10.visibility = "[@raid11,exists] hide;show" + E.db.unitframe.units.raid10.power.position = "BOTTOMLEFT" + E.db.unitframe.units.raid10.power.width = "spaced" + E.db.unitframe.units.raid10.healPrediction = true + E.db.unitframe.units.raid10.health.frequentUpdates = true + + --Unitframes (Raid25) + E.db.unitframe.units.raid25.healPrediction = true + E.db.unitframe.units.raid25.power.width = "spaced" + + if E.db.lowresolutionset then + --Actionbars + E.db.actionbar.bar1.heightMult = 2 + E.db.actionbar.bar1.point = 'BOTTOMLEFT' + E.db.actionbar.bar3.enabled = false + E.db.actionbar.bar4.buttonsize = 25 + E.db.actionbar.bar4.enabled = true + E.db.actionbar.bar4.point = 'TOPLEFT' + E.db.actionbar.bar4.buttonsize = 20 + E.db.actionbar.bar5.enabled = false + E.db.actionbar.barShapeShift.buttonsize = 20 + E.db.actionbar.barPet.buttonsize = 20 + + --Datatext Panels + E.db.sle.datatext.dp5.enabled = false + E.db.sle.datatext.dp6.enabled = false + E.db.sle.datatext.bottom.enabled = false + E.db.sle.datatext.chatleft.width = 334 + E.db.sle.datatext.chatright.width = 334 + E.db.datatexts.panels['DP_2']['middle'] = "Spec Switch" + E.db.datatexts.panels['DP_3']['right'] = "Mastery" + E.db.datatexts.panels['DP_3']['left'] = "Haste" + E.db.datatexts.panels['DP_3']['middle'] = "Crit Chance" + E.db.datatexts.panels['DP_4']['left'] = "SocialState" + E.db.datatexts.panels['DP_4']['middle'] = "Gold" + E.db.datatexts.panels['LeftMiniPanel'] = "WIM" + E.db.datatexts.panels['RightMiniPanel'] = "System" + E.db.datatexts.panels['RightChatDataPanel']['left'] = "Skada" + E.db.datatexts.panels['RightChatDataPanel']['middle'] = "Durability" + + --General Options + E.db.general.panelHeight = 180 + E.db.general.panelWidth = 350 + E.db.general.fontsize = 11 + E.db.general.minimapPanels = true + + --Marks Bar + E.db.sle.marks.growth = "DOWN" + E.db.sle.marks.size = 15 + + --Unitframes (Target) + E.db.unitframe.units.target.width = 200 + E.db.unitframe.units.target.height = 50 + E.db.unitframe.units.target.castbar.width = 200 + E.db.unitframe.units.target.castbar.height = 18 + E.db.unitframe.units.target.castbar.format = "CURRENTMAX" + + --Unitframes (Raid10) + E.db.unitframe.units.raid10.width = 65 + E.db.unitframe.units.raid10.health.position = "BOTTOM" + E.db.unitframe.units.raid10.health.orientation = "HORIZONTAL" + + --Unitframes (Raid25) + E.db.unitframe.units.raid25.width = 65 + E.db.unitframe.units.raid25.health.orientation = "HORIZONTAL" + + --Unitframes (Raid40) + E.db.unitframe.units.raid40.width = 65 + else + --Actionbars + E.db.actionbar.bar1.buttonsPerRow = 6 + E.db.actionbar.bar1.buttonspacing = 3 + E.db.actionbar.bar1.point = 'TOPLEFT' + E.db.actionbar.bar1['paging'][E.myclass] = "[mod:alt] 5;" + E.db.actionbar.bar2.backdrop = true + E.db.actionbar.bar2.buttonsPerRow = 6 + E.db.actionbar.bar2.buttonspacing = 3 + E.db.actionbar.bar2.enable = true + E.db.actionbar.bar2.mouseover = true + E.db.actionbar.bar2.buttons = 12 + E.db.actionbar.bar3.buttons = 12 + E.db.actionbar.bar3.buttonspacing = 3 + E.db.actionbar.bar3.enabled = true + E.db.actionbar.bar3.point = 'TOPLEFT' + E.db.actionbar.bar4.enabled = false + E.db.actionbar.bar4.point = 'TOPLEFT' + E.db.actionbar.bar4.buttonspacing = 3 + E.db.actionbar.bar4.buttonsPerRow = 12 + E.db.actionbar.bar5.enabled = true + E.db.actionbar.bar5.point = 'TOPLEFT' + E.db.actionbar.bar5.buttons = 12 + E.db.actionbar.bar5.buttonspacing = 3 + E.db.actionbar.barShapeShift.buttonsize = 31 + E.db.actionbar.barShapeShift.buttonsPerRow = 1 + E.db.actionbar.barShapeShift.buttonspacing = 5 + E.db.actionbar.barShapeShift.backdrop = true + E.db.actionbar.barPet.buttonsize = 21 + + --Bags + E.db.bags.bagCols = 11 + E.db.bags.yOffset = 245 + + --Datatext Panels + E.db.sle.datatext.dp5.enabled = true + E.db.sle.datatext.dp5.width = 424 + E.db.sle.datatext.dp6.enabled = true + E.db.sle.datatext.dp6.width = 424 + E.db.sle.datatext.bottom.enabled = true + E.db.sle.datatext.chatleft.width = 424 + E.db.sle.datatext.chatright.width = 424 + E.db.datatexts.panels['DP_2']['middle'] = "" + E.db.datatexts.panels['DP_3']['right'] = "WIM" + E.db.datatexts.panels['DP_3']['left'] = "SocialState" + E.db.datatexts.panels['DP_3']['middle'] = "" + E.db.datatexts.panels['DP_4']['left'] = "" + E.db.datatexts.panels['DP_4']['middle'] = "" + E.db.datatexts.panels['RightChatDataPanel']['left'] = "" + E.db.datatexts.panels['RightChatDataPanel']['middle'] = "Gold" + + --General Options + E.db.general.panelHeight = 243 + E.db.general.panelWidth = 400 + E.db.general.fontsize = 12 + E.db.general.minimapSize = 181 + E.db.general.minimapPanels = false + + --Marks + E.db.sle.marks.size = 15 + + --Movers + E.db.movers.ElvAB_1 = "BOTTOMUIParentBOTTOM021" + E.db.movers.ElvAB_2 = "RIGHTUIParentRIGHT0200" + E.db.movers.ElvAB_3 = "RIGHTElvAB_1LEFT00" + E.db.movers.ElvAB_5 = "LEFTElvAB_1RIGHT00" + E.db.movers.BossButton = "CENTERUIParentBOTTOMLEFT660968" + E.db.movers.BNETMover = "TOPRIGHTUIParentTOPRIGHT-2-214" + + --Unitframes (Arena) + E.db.unitframe.units.arena.debuffs.sizeOverride = 45 + E.db.unitframe.units.arena.width = 200 + E.db.unitframe.units.arena.buffs.sizeOverride = 45 + E.db.unitframe.units.arena.buffs.perrow = 4 + E.db.unitframe.units.arena.castbar.width = 200 + + --Unitframes (Boss) + E.db.unitframe.units.boss.debuffs.sizeOverride = 45 + E.db.unitframe.units.boss.width = 200 + E.db.unitframe.units.boss.height = 45 + E.db.unitframe.units.boss.buffs.sizeOverride = 45 + E.db.unitframe.units.boss.buffs.perrow = 4 + E.db.unitframe.units.boss.castbar.width = 200 + E.db.unitframe.units.boss.health.position = "TOPLEFT" + + --Unitframes (Focus) + E.db.unitframe.units.focus.width = 150 + E.db.unitframe.units.focus.castbar.width = 150 + E.db.unitframe.units.focus.castbar.height = 15 + + --Unitframes (Player) + E.db.unitframe.units.player.width = 230 + E.db.unitframe.units.player.height = 50 + E.db.unitframe.units.player.castbar.width = 230 + E.db.unitframe.units.player.castbar.height = 15 + E.db.unitframe.units.player.castbar.format = "CURRENTMAX" + + --Unitframes (Party) + E.db.unitframe.units.party.enable = false + + --Unitframes (Raid10) + E.db.unitframe.units.raid10.showSolo = true + E.db.unitframe.units.raid10.width = 70 + E.db.unitframe.units.raid10.health.position = "CENTER" + E.db.unitframe.units.raid10.health.orientation = "VERTICAL" + + --Unitframes (Raid25) + E.db.unitframe.units.raid25.width = 70 + E.db.unitframe.units.raid25.health.orientation = "VERTICAL" + + --Unitframes (Raid40) + E.db.unitframe.units.raid40.width = 70 + + --Unitframes (Tank) + E.db.unitframe.units.tank.enable = false + + --Unitframes (Target) + E.db.unitframe.units.target.width = 230 + E.db.unitframe.units.target.height = 50 + E.db.unitframe.units.target.castbar.width = 230 + E.db.unitframe.units.target.castbar.height = 15 + E.db.unitframe.units.target.castbar.format = "CURRENTMAX" + + end + + layout = E.db.layoutSet --To know if some sort of layout was choosed before + + --The big block for moving all unitframes stuff up + if layout == 'healer' then + if not noDataReset then + E.db.unitframe.units.arena.castbar.width = 200 + E.db.unitframe.units.arena.width = 200 + E.db.unitframe.units.boss.castbar.width = 200 + E.db.unitframe.units.boss.width = 200 + E.db.unitframe.units.party.columnAnchorPoint = 'LEFT'; + E.db.unitframe.units.party.debuffs.anchorPoint = 'BOTTOMLEFT'; + E.db.unitframe.units.party.debuffs.initialAnchor = 'TOPLEFT'; + E.db.unitframe.units.party.debuffs.useFilter = 'DebuffBlacklist'; + E.db.unitframe.units.party.debuffs.sizeOverride = 0; + E.db.unitframe.units.party.health.frequentUpdates = true; + E.db.unitframe.units.party.health.text_format = 'deficit'; + E.db.unitframe.units.party.health.position = 'BOTTOM'; + E.db.unitframe.units.party.health.orientation = 'VERTICAL'; + E.db.unitframe.units.party.healPrediction = true; + E.db.unitframe.units.party.height = 52; + E.db.unitframe.units.party.name.position = 'TOP'; + E.db.unitframe.units.party.name.length = "SHORT"; + 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.point = 'LEFT'; + 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.party.width = 80; + E.db.unitframe.units.party.xOffset = 5; + E.db.unitframe.units.raid25.health.frequentUpdates = true; + E.db.unitframe.units.raid25.healPrediction = true; + E.db.unitframe.units.raid25.health.orientation = 'VERTICAL'; + 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.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 + --print("Healer low res selected"); + E.db.movers.ElvUF_PlayerMover = "BOTTOMUIParentBOTTOM-106135" + E.db.movers.ElvUF_TargetMover = "BOTTOMUIParentBOTTOM106135" + E.db.movers.ElvUF_TargetTargetMover = "BOTTOMUIParentBOTTOM10680" + E.db.movers.ElvUF_PetMover = "BOTTOMUIParentBOTTOM-10680" + E.db.movers.ElvUF_FocusMover = "BOTTOMUIParentBOTTOM310332" + E.db.movers.ElvUF_PartyMover = "BOTTOMLEFTUIParentBOTTOMLEFT13203" + E.db.movers.ElvUF_Raid10Mover = "BOTTOMLEFTUIParentBOTTOMLEFT13203" + E.db.movers.ElvUF_Raid25Mover = "BOTTOMLEFTUIParentBOTTOMLEFT13203" + E.db.movers.ElvUF_Raid40Mover = "BOTTOMLEFTUIParentBOTTOMLEFT13203" + E.db.movers.ElvAB_2 = "CENTERUIParentBOTTOM056.18" + E.db.movers.MarkMover = "BOTTOMRIGHTUIParentBOTTOMRIGHT-35270" + E.db.movers.BossButton = "BOTTOMLEFTUIParentBOTTOMLEFT36285" + E.db.movers.BNETMover = "TOPLEFTUIParentTOPLEFT294-22" + E.db.movers.BossHeaderMover = "TOPRIGHTUIParentTOPRIGHT-119-262" + E.db.movers.ArenaHeaderMover = "BOTTOMRIGHTUIParentBOTTOMRIGHT-118218" + else + --print("Healer high res selected"); + E.db.movers.ElvUF_PlayerMover = "BOTTOMUIParentBOTTOM-300265" + E.db.movers.ElvUF_TargetMover = "BOTTOMUIParentBOTTOM300265" + E.db.movers.ElvUF_TargetTargetMover = "BOTTOMRIGHTUIParentBOTTOMRIGHT-464167" + E.db.movers.ElvUF_PetMover = "BOTTOMUIParentBOTTOM-420135" + E.db.movers.ElvUF_FocusMover = "BOTTOMLEFTUIParentBOTTOM560265" + E.db.movers.ElvUF_PartyMover = "BOTTOMUIParentBOTTOM0105" + E.db.movers.ElvUF_Raid10Mover = "BOTTOMUIParentBOTTOM0105" + E.db.movers.ElvUF_Raid25Mover = "BOTTOMUIParentBOTTOM0105" + E.db.movers.ElvUF_Raid40Mover = "BOTTOMUIParentBOTTOM0105" + E.db.movers.MarkMover = "BOTTOMUIParentBOTTOM-285200" + + end + elseif E.db.lowresolutionset then + if not E.db.movers then E.db.movers = {}; end + --print("None healer low res selected"); + E.db.movers.ElvUF_PlayerMover = "BOTTOMUIParentBOTTOM-106135" + E.db.movers.ElvUF_TargetMover = "BOTTOMUIParentBOTTOM106135" + E.db.movers.ElvUF_TargetTargetMover = "BOTTOMUIParentBOTTOM10680" + E.db.movers.ElvUF_PetMover = "BOTTOMUIParentBOTTOM-10680" + E.db.movers.ElvUF_FocusMover = "BOTTOMUIParentBOTTOM310332" + E.db.movers.ElvUF_PartyMover = "BOTTOMLEFTUIParentBOTTOMLEFT13203" + E.db.movers.ElvUF_Raid10Mover = "BOTTOMLEFTUIParentBOTTOMLEFT13203" + E.db.movers.ElvUF_Raid25Mover = "BOTTOMLEFTUIParentBOTTOMLEFT13203" + E.db.movers.ElvUF_Raid40Mover = "BOTTOMLEFTUIParentBOTTOMLEFT13203" + E.db.movers.ElvAB_2 = "CENTERUIParentBOTTOM056.18" + E.db.movers.MarkMover = "BOTTOMRIGHTUIParentBOTTOMRIGHT-35270" + E.db.movers.BossButton = "BOTTOMLEFTUIParentBOTTOMLEFT36285" + E.db.movers.BNETMover = "TOPLEFTUIParentTOPLEFT294-22" + E.db.movers.BossHeaderMover = "TOPRIGHTUIParentTOPRIGHT-119-262" + E.db.movers.ArenaHeaderMover = "BOTTOMRIGHTUIParentBOTTOMRIGHT-118218" + + else + --[[if not noDataReset then + E:ResetMovers('') + end]] + if not E.db.movers then E.db.movers = {}; end + --print("None healer high res selected"); + E.db.movers.ElvUF_PlayerMover = "BOTTOMUIParentBOTTOM-185135" + E.db.movers.ElvUF_TargetMover = "BOTTOMUIParentBOTTOM185135" + E.db.movers.ElvUF_TargetTargetMover = "BOTTOMUIParentBOTTOM0120" + E.db.movers.ElvUF_PetMover = "BOTTOMUIParentBOTTOM-420135" + E.db.movers.ElvUF_FocusMover = "BOTTOMLEFTUIParentBOTTOM560265" + E.db.movers.ElvUF_PartyMover = "BOTTOMLEFTUIParentBOTTOMLEFT0263" + E.db.movers.ElvUF_Raid10Mover = "BOTTOMLEFTUIParentBOTTOMLEFT0263" + E.db.movers.ElvUF_Raid25Mover = "BOTTOMLEFTUIParentBOTTOMLEFT0263" + E.db.movers.ElvUF_Raid40Mover = "BOTTOMLEFTUIParentBOTTOMLEFT0263" + E.db.movers.MarkMover = "BOTTOMUIParentBOTTOM0165" + 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 + + E:UpdateAll(true) +end + +function E:ElvSetup() --The function to restore defaults. not finished yet lol + InstallStepComplete.message = L["Elv's Defaults Set"] + InstallStepComplete:Show() + if not E.db.movers then E.db.movers = {}; end + --Set to defaults. Every module is listed just in case. + E:CopyTable(E.db.general, P.general) --General options + E:CopyTable(E.db.nameplate, P.nameplate) --Nameplates + E:CopyTable(E.db.datatexts, P.datatexts) --Datatexts + E:CopyTable(E.db.actionbar, P.actionbar) --Actionbars + E:CopyTable(E.db.tooltip, P.tooltip) --Tooltip + E:CopyTable(E.db.unitframe, P.unitframe) --Unitframes + E:CopyTable(E.db.skins, P.skins) --Skins + E:CopyTable(E.db.bags, P.bags) --Bags + E:CopyTable(E.db.classtimer, P.classtimer) --ClassTimers + E:CopyTable(E.db.chat, P.chat) --Chat + E:CopyTable(E.db.sle, P.sle) --Edit's main defaults + E:CopyTable(E.db.microbar, P.microbar) --Microbar + --Move every bar and panel to the defaults. + E:ResetUI() --Reseting positions + StaticPopup3Button1:Click() --this is automatic click on confirm for reseting movers + + E:UpdateAll(true) +end + +local function InstallComplete() + E.db.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("") + InstallTutorialImage:Size(250) + InstallTutorialImage:SetTexture(nil) + InstallTutorialImage:Hide() + ElvUIInstallFrame:Size(550, 400) +end + +local function SetPage(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 + + InstallTutorialImage:Size(256, 128) + InstallTutorialImage:SetTexture('Interface\\AddOns\\ElvUI_SLE\\textures\\logo_elvui_sle.tga') + InstallTutorialImage:Show() + + 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['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('classic_pixel') end) + InstallOption2Button:SetText(L['Classic Pixel']) + InstallOption3Button:Show() + InstallOption3Button:SetScript('OnClick', function() E:SetupTheme('default') end) + InstallOption3Button:SetText(DEFAULT) + InstallOption4Button:Show() + InstallOption4Button:SetScript('OnClick', function() E:SetupTheme('class') end) + InstallOption4Button:SetText(CLASS) + elseif PageNum == 5 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 == 6 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 == 7 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:SetupTheme('class'); E:RepoocSetup() end) + InstallOption2Button:SetText(L["Repooc's Config"]) + InstallOption3Button:Show() + InstallOption3Button:SetScript('OnClick', function() E:ElvSetup() end) + InstallOption3Button:SetText(L["Elv's Defaults"]) + elseif PageNum == 8 then + f.SubTitle:SetText(L["Installation Complete"]) + f.Desc1:SetText(L["You are now finished with the installation process. Bonus Hint: If you wish to access blizzard micro menu, middle click on the minimap. If you don't have a middle click button then hold down shift and right click the minimap. If you are in need of technical support please visit us at 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"]) + InstallTutorialImage:Show() + InstallTutorialImage:SetTexture([[Interface\AddOns\ElvUI\media\textures\micromenu_tutorial.tga]]) + ElvUIInstallFrame:Size(550, 500) + InstallTutorialImage:Size(250) + 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() + E.db.datatexts.panels.Top_Center = 'Version' + E:GetModule('DataTexts'):LoadDataTexts() + + 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:Size(550, 400) + f:SetTemplate("Transparent") + f:CreateShadow("Default") + 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, "UIPanelButtonTemplate2") + 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, "UIPanelButtonTemplate2") + 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, "UIPanelButtonTemplate2") + 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, "UIPanelButtonTemplate2") + 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, "UIPanelButtonTemplate2") + 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, "UIPanelButtonTemplate2") + 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(250) + f.tutorialImage:Point('BOTTOM', 0, 70) + + end + + ElvUIInstallFrame:Show() + NextPage() end \ No newline at end of file -- 1.7.9.5