121 lines
5.0 KiB
Lua
121 lines
5.0 KiB
Lua
|
local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||
|
local Skins = E:GetModule('Skins')
|
||
|
|
||
|
local _G = _G
|
||
|
local CreateFrame = CreateFrame
|
||
|
local DISABLE = DISABLE
|
||
|
local HIDE = HIDE
|
||
|
-- GLOBALS: ElvUITutorialWindow
|
||
|
|
||
|
E.TutorialList = {
|
||
|
L["Need help? Join our Discord: https://discord.gg/xFWcfgE"],
|
||
|
L["You can enter the keybind mode by typing /kb"],
|
||
|
L["Don't forget to backup your WTF folder, all your profiles and settings are in there."],
|
||
|
L["If you are experiencing issues with ElvUI try disabling all your addons except ElvUI first."],
|
||
|
L["You can access the copy chat and chat menu functions by left/right clicking on the icon in the top right corner of the chat panel."],
|
||
|
L["You can see someones average item level inside the tooltip by holding shift and mousing over them."],
|
||
|
L["To setup chat colors, chat channels and chat font size, right-click the chat tab name."],
|
||
|
L["ElvUI has a dual spec feature which allows you to load different profiles based on your current spec on the fly. You can enable it in the profiles tab."],
|
||
|
L["A raid marker feature is available by pressing Escape -> Keybinds. Scroll to the bottom -> ElvUI -> Raid Marker."],
|
||
|
L["You can access the microbar by using middle mouse button on the minimap. You can also enable the MicroBar in the actionbar settings."],
|
||
|
L["If you accidentally removed a default chat tab you can always re-run the chat part of the ElvUI installer."],
|
||
|
L["You can quickly change your displayed DataTexts by mousing over them while holding ALT."],
|
||
|
L["To quickly move around certain elements of the UI, type /moveui"],
|
||
|
L["From time to time you should compare your ElvUI version against the most recent version on our website or the Tukui client."],
|
||
|
L["To list all available ElvUI commands, type in chat /ehelp"]
|
||
|
}
|
||
|
|
||
|
function E:SetNextTutorial()
|
||
|
self.db.currentTutorial = self.db.currentTutorial or 0
|
||
|
self.db.currentTutorial = self.db.currentTutorial + 1
|
||
|
|
||
|
if self.db.currentTutorial > #E.TutorialList then
|
||
|
self.db.currentTutorial = 1
|
||
|
end
|
||
|
|
||
|
ElvUITutorialWindow.desc:SetText(E.TutorialList[self.db.currentTutorial])
|
||
|
end
|
||
|
|
||
|
function E:SetPrevTutorial()
|
||
|
self.db.currentTutorial = self.db.currentTutorial or 0
|
||
|
self.db.currentTutorial = self.db.currentTutorial - 1
|
||
|
|
||
|
if self.db.currentTutorial <= 0 then
|
||
|
self.db.currentTutorial = #E.TutorialList
|
||
|
end
|
||
|
|
||
|
ElvUITutorialWindow.desc:SetText(E.TutorialList[self.db.currentTutorial])
|
||
|
end
|
||
|
|
||
|
function E:SpawnTutorialFrame()
|
||
|
local f = CreateFrame('Frame', 'ElvUITutorialWindow', E.UIParent, 'BackdropTemplate')
|
||
|
f:SetFrameStrata('DIALOG')
|
||
|
f:SetToplevel(true)
|
||
|
f:SetClampedToScreen(true)
|
||
|
f:Width(360)
|
||
|
f:Height(110)
|
||
|
f:SetTemplate('Transparent')
|
||
|
f:Hide()
|
||
|
|
||
|
local header = CreateFrame('Button', nil, f, 'BackdropTemplate')
|
||
|
header:SetTemplate(nil, true)
|
||
|
header:Width(120); header:Height(25)
|
||
|
header:Point('CENTER', f, 'TOP')
|
||
|
header:SetFrameLevel(header:GetFrameLevel() + 2)
|
||
|
|
||
|
local title = header:CreateFontString(nil, 'OVERLAY')
|
||
|
title:FontTemplate()
|
||
|
title:Point('CENTER', header, 'CENTER')
|
||
|
title:SetText('ElvUI')
|
||
|
|
||
|
local desc = f:CreateFontString(nil, 'ARTWORK')
|
||
|
desc:SetFontObject('GameFontHighlight')
|
||
|
desc:SetJustifyV('TOP')
|
||
|
desc:SetJustifyH('LEFT')
|
||
|
desc:Point('TOPLEFT', 18, -32)
|
||
|
desc:Point('BOTTOMRIGHT', -18, 30)
|
||
|
f.desc = desc
|
||
|
|
||
|
f.disableButton = CreateFrame('CheckButton', f:GetName()..'DisableButton', f, 'OptionsCheckButtonTemplate, BackdropTemplate')
|
||
|
_G[f.disableButton:GetName() .. 'Text']:SetText(DISABLE)
|
||
|
f.disableButton:Point('BOTTOMLEFT')
|
||
|
Skins:HandleCheckBox(f.disableButton)
|
||
|
f.disableButton:SetScript('OnShow', function(btn) btn:SetChecked(E.db.hideTutorial) end)
|
||
|
|
||
|
f.disableButton:SetScript('OnClick', function(btn) E.db.hideTutorial = btn:GetChecked() end)
|
||
|
|
||
|
f.hideButton = CreateFrame('Button', f:GetName()..'HideButton', f, 'OptionsButtonTemplate, BackdropTemplate')
|
||
|
f.hideButton:Point('BOTTOMRIGHT', -5, 5)
|
||
|
Skins:HandleButton(f.hideButton)
|
||
|
_G[f.hideButton:GetName() .. 'Text']:SetText(HIDE)
|
||
|
f.hideButton:SetScript('OnClick', function(btn) E:StaticPopupSpecial_Hide(btn:GetParent()) end)
|
||
|
|
||
|
f.nextButton = CreateFrame('Button', f:GetName()..'NextButton', f, 'OptionsButtonTemplate, BackdropTemplate')
|
||
|
f.nextButton:Point('RIGHT', f.hideButton, 'LEFT', -4, 0)
|
||
|
f.nextButton:Width(20)
|
||
|
Skins:HandleButton(f.nextButton)
|
||
|
_G[f.nextButton:GetName() .. 'Text']:SetText('>')
|
||
|
f.nextButton:SetScript('OnClick', function() E:SetNextTutorial() end)
|
||
|
|
||
|
f.prevButton = CreateFrame('Button', f:GetName()..'PrevButton', f, 'OptionsButtonTemplate, BackdropTemplate')
|
||
|
f.prevButton:Point('RIGHT', f.nextButton, 'LEFT', -4, 0)
|
||
|
f.prevButton:Width(20)
|
||
|
Skins:HandleButton(f.prevButton)
|
||
|
_G[f.prevButton:GetName() .. 'Text']:SetText('<')
|
||
|
f.prevButton:SetScript('OnClick', function() E:SetPrevTutorial() end)
|
||
|
|
||
|
return f
|
||
|
end
|
||
|
|
||
|
function E:Tutorials(forceShow)
|
||
|
if (not forceShow and self.db.hideTutorial) or (not forceShow and not self.private.install_complete) then return end
|
||
|
local f = ElvUITutorialWindow
|
||
|
if not f then
|
||
|
f = E:SpawnTutorialFrame()
|
||
|
end
|
||
|
|
||
|
E:StaticPopupSpecial_Show(f)
|
||
|
|
||
|
self:SetNextTutorial()
|
||
|
end
|