You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
526 lines
18 KiB
526 lines
18 KiB
--[[
|
|
Import.lua
|
|
@Author : DengSir (tdaddon@163.com)
|
|
@Link : https://dengsir.github.io
|
|
]]
|
|
|
|
local ns = select(2, ...)
|
|
local Addon = ns.Addon
|
|
local UI = ns.UI
|
|
local L = ns.L
|
|
local GUI = LibStub('tdGUI-1.0')
|
|
|
|
local Import = Addon:NewModule('UI.Import')
|
|
|
|
function Import:OnInitialize()
|
|
local Frame = GUI:GetClass('BasicPanel'):New(UIParent) do
|
|
Frame:Hide()
|
|
Frame:SetSize(350, 280)
|
|
Frame:SetPoint('CENTER')
|
|
Frame:SetFrameStrata('DIALOG')
|
|
Frame:SetText(L['Import'])
|
|
Frame:SetCallback('OnShow', function()
|
|
self.script = nil
|
|
self.data = nil
|
|
self.EditBox:SetText('')
|
|
self.EditBox:SetFocus()
|
|
self.ExtraCheck:SetChecked(true)
|
|
self.PluginDropdown:SetValue(nil)
|
|
self.KeyDropdown:SetValue(nil)
|
|
self.PageFrame:SetPage(1, true)
|
|
self.WelcomeWarning:Hide()
|
|
self:UpdateControl()
|
|
end)
|
|
|
|
local Bg = Frame:CreateTexture(nil, 'BACKGROUND') do
|
|
Bg:SetPoint('TOPLEFT', 3, -22)
|
|
Bg:SetPoint('BOTTOMRIGHT', -3, 3)
|
|
Bg:SetTexture([[Interface\FrameGeneral\UI-Background-Marble]])
|
|
end
|
|
|
|
local TLCorner = Frame:CreateTexture(nil, 'ARTWORK') do
|
|
TLCorner:SetSize(64, 64)
|
|
TLCorner:SetPoint('TOPLEFT', Bg, 'TOPLEFT')
|
|
TLCorner:SetTexture([[Interface\Common\bluemenu-main]])
|
|
TLCorner:SetTexCoord(0.00390625, 0.25390625, 0.00097656, 0.06347656)
|
|
end
|
|
|
|
local TRCorner = Frame:CreateTexture(nil, 'ARTWORK') do
|
|
TRCorner:SetSize(64, 64)
|
|
TRCorner:SetPoint('TOPRIGHT', Bg, 'TOPRIGHT')
|
|
TRCorner:SetTexture([[Interface\Common\bluemenu-main]])
|
|
TRCorner:SetTexCoord(0.51953125, 0.76953125, 0.00097656, 0.06347656)
|
|
end
|
|
|
|
local BRCorner = Frame:CreateTexture(nil, 'ARTWORK') do
|
|
BRCorner:SetSize(64, 64)
|
|
BRCorner:SetPoint('BOTTOMRIGHT', Bg, 'BOTTOMRIGHT')
|
|
BRCorner:SetTexture([[Interface\Common\bluemenu-main]])
|
|
BRCorner:SetTexCoord(0.00390625, 0.25390625, 0.06542969, 0.12792969)
|
|
end
|
|
|
|
local BLCorner = Frame:CreateTexture(nil, 'ARTWORK') do
|
|
BLCorner:SetSize(64, 64)
|
|
BLCorner:SetPoint('BOTTOMLEFT', Bg, 'BOTTOMLEFT')
|
|
BLCorner:SetTexture([[Interface\Common\bluemenu-main]])
|
|
BLCorner:SetTexCoord(0.26171875, 0.51171875, 0.00097656, 0.06347656)
|
|
end
|
|
|
|
local LLine = Frame:CreateTexture(nil, 'ARTWORK') do
|
|
LLine:SetWidth(43)
|
|
LLine:SetPoint('TOPLEFT', TLCorner, 'BOTTOMLEFT')
|
|
LLine:SetPoint('BOTTOMLEFT', BLCorner, 'TOPLEFT')
|
|
LLine:SetTexture([[Interface\Common\bluemenu-vert]])
|
|
LLine:SetTexCoord(0.06250000, 0.39843750, 0.00000000, 1.00000000)
|
|
end
|
|
|
|
local RLine = Frame:CreateTexture(nil, 'ARTWORK') do
|
|
RLine:SetWidth(43)
|
|
RLine:SetPoint('TOPRIGHT', TRCorner, 'BOTTOMRIGHT')
|
|
RLine:SetPoint('BOTTOMRIGHT', BRCorner, 'TOPRIGHT')
|
|
RLine:SetTexture([[Interface\Common\bluemenu-vert]])
|
|
RLine:SetTexCoord(0.41406250, 0.75000000, 0.00000000, 1.00000000)
|
|
end
|
|
|
|
local BLine = Frame:CreateTexture(nil, 'ARTWORK') do
|
|
BLine:SetHeight(43)
|
|
BLine:SetPoint('BOTTOMLEFT', BLCorner, 'BOTTOMRIGHT')
|
|
BLine:SetPoint('BOTTOMRIGHT', BRCorner, 'BOTTOMLEFT')
|
|
BLine:SetTexture([[Interface\Common\bluemenu-goldborder-horiz]])
|
|
BLine:SetTexCoord(0.00000000, 1.00000000, 0.35937500, 0.69531250)
|
|
end
|
|
|
|
local TLine = Frame:CreateTexture(nil, 'ARTWORK') do
|
|
TLine:SetHeight(43)
|
|
TLine:SetPoint('TOPLEFT', TLCorner, 'TOPRIGHT')
|
|
TLine:SetPoint('TOPRIGHT', TRCorner, 'TOPLEFT')
|
|
TLine:SetTexture([[Interface\Common\bluemenu-goldborder-horiz]])
|
|
TLine:SetTexCoord(0.00000000, 1.00000000, 0.00781250, 0.34375000)
|
|
end
|
|
end
|
|
|
|
local PageFrame = GUI:GetClass('AnimPageFrame'):New(Frame) do
|
|
PageFrame:SetPoint('TOPLEFT', 3, -22)
|
|
PageFrame:SetPoint('BOTTOMRIGHT', -3, 3)
|
|
PageFrame:SetOrientation('VERTICAL')
|
|
end
|
|
|
|
local PageWelcome = CreateFrame('Frame', nil, PageFrame) do
|
|
PageFrame:AddPage(PageWelcome)
|
|
end
|
|
|
|
local PageSelector = CreateFrame('Frame', nil, PageFrame) do
|
|
PageFrame:AddPage(PageSelector)
|
|
end
|
|
|
|
local PageImport = CreateFrame('Frame', nil, PageFrame) do
|
|
PageFrame:AddPage(PageImport)
|
|
end
|
|
|
|
self.Frame = Frame
|
|
self.PageFrame = PageFrame
|
|
self.PageWelcome = PageWelcome
|
|
self.PageImport = PageImport
|
|
self.PageSelector = PageSelector
|
|
|
|
self:InitPageWelcome(PageWelcome)
|
|
self:InitPageSelector(PageSelector)
|
|
self:InitPageImport(PageImport)
|
|
end
|
|
|
|
function Import:InitPageWelcome(frame)
|
|
local WelcomeHelp = CreateFrame('Frame', nil, frame) do
|
|
WelcomeHelp:SetAllPoints(true)
|
|
|
|
local Text = frame:CreateFontString(nil, 'OVERLAY', 'GameFontGreen') do
|
|
Text:SetPoint('TOP', 0, -30)
|
|
Text:SetPoint('LEFT', 60, 0)
|
|
Text:SetPoint('RIGHT', -20, 0)
|
|
Text:SetText(L.IMPORT_SCRIPT_WELCOME)
|
|
end
|
|
|
|
local Icon = frame:CreateTexture(nil, 'OVERLAY') do
|
|
Icon:SetTexture([[Interface\DialogFrame\UI-Dialog-Icon-AlertOther]])
|
|
Icon:SetSize(32, 32)
|
|
Icon:SetPoint('RIGHT', Text, 'LEFT', -8, 0)
|
|
end
|
|
end
|
|
|
|
local EditBox = GUI:GetClass('EditBox'):New(frame, true) do
|
|
EditBox:SetPoint('TOPLEFT', 27, -68)
|
|
EditBox:SetPoint('TOPRIGHT', -27, -68)
|
|
EditBox:SetHeight(130)
|
|
EditBox:SetCallback('OnTextChanged', function(_, userInput)
|
|
if not userInput then
|
|
return
|
|
end
|
|
self:OnTextChanged()
|
|
end)
|
|
end
|
|
|
|
local WelcomeNextButton = CreateFrame('Button', nil, frame, 'UIPanelButtonTemplate') do
|
|
WelcomeNextButton:SetPoint('BOTTOM', 0, 20)
|
|
WelcomeNextButton:SetSize(120, 26)
|
|
WelcomeNextButton:SetText(CONTINUE)
|
|
WelcomeNextButton:SetScript('OnClick', function()
|
|
self.EditBox:ClearFocus()
|
|
self.PageFrame:SetPage(2)
|
|
end)
|
|
end
|
|
|
|
local WelcomeWarning = CreateFrame('Frame', nil, EditBox) do
|
|
WelcomeWarning:SetAllPoints(true)
|
|
WelcomeWarning:SetFrameLevel(EditBox:GetFrameLevel() + 10)
|
|
|
|
local bg = WelcomeWarning:CreateTexture(nil, 'BACKGROUND') do
|
|
bg:SetAllPoints(true)
|
|
bg:SetColorTexture(0, 0, 0, 0.9)
|
|
end
|
|
|
|
local Text = WelcomeWarning:CreateFontString(nil, 'OVERLAY', 'GameFontRed') do
|
|
Text:SetPoint('LEFT', 40, 0)
|
|
Text:SetPoint('RIGHT')
|
|
end
|
|
|
|
local Icon = WelcomeWarning:CreateTexture(nil, 'OVERLAY') do
|
|
Icon:SetTexture([[Interface\DialogFrame\UI-Dialog-Icon-AlertNew]])
|
|
Icon:SetSize(32, 32)
|
|
Icon:SetPoint('RIGHT', Text, 'LEFT', -8, 0)
|
|
end
|
|
WelcomeWarning.Text = Text
|
|
end
|
|
|
|
local ReinputButton = CreateFrame('Button', nil, WelcomeWarning, 'UIPanelButtonTemplate') do
|
|
ReinputButton:SetPoint('BOTTOM')
|
|
ReinputButton:SetSize(120, 26)
|
|
ReinputButton:SetText(L.IMPORT_REINPUT_TEXT)
|
|
ReinputButton:SetScript('OnClick', function()
|
|
self.WelcomeWarning:Hide()
|
|
self.EditBox:SetText('')
|
|
self.EditBox:SetFocus()
|
|
end)
|
|
end
|
|
|
|
self.WelcomeNextButton = WelcomeNextButton
|
|
self.EditBox = EditBox
|
|
self.WelcomeWarning = WelcomeWarning
|
|
end
|
|
|
|
function Import:InitPageSelector(frame)
|
|
local PluginDropdown = GUI:GetClass('Dropdown'):New(frame) do
|
|
PluginDropdown:SetPoint('TOP', 0, -58)
|
|
PluginDropdown:SetSize(200, 26)
|
|
PluginDropdown:SetMaxItem(20)
|
|
PluginDropdown:SetDefaultText(L.IMPORT_CHOOSE_PLUGIN)
|
|
PluginDropdown:SetMenuTable(function(list)
|
|
for _, plugin in Addon:IteratePlugins() do
|
|
if type(plugin.IterateKeys) == 'function' then
|
|
tinsert(list, {
|
|
text = plugin:GetPluginTitle(),
|
|
value = plugin,
|
|
})
|
|
end
|
|
end
|
|
end)
|
|
PluginDropdown:SetCallback('OnSelectChanged', function(_, item)
|
|
self.KeyDropdown:SetValue(nil)
|
|
self:UpdateControl()
|
|
end)
|
|
end
|
|
|
|
local KeyDropdown = GUI:GetClass('Dropdown'):New(frame) do
|
|
KeyDropdown:SetPoint('TOP', PluginDropdown, 'BOTTOM', 0, -30)
|
|
KeyDropdown:SetSize(200, 26)
|
|
KeyDropdown:SetMaxItem(20)
|
|
KeyDropdown:SetDefaultText(L.IMPORT_CHOOSE_KEY)
|
|
|
|
local function tooltipMore(tip, item)
|
|
local plugin = item.plugin
|
|
local key = item.value
|
|
local notes = plugin:GetPluginNotes()
|
|
local tipFormatting = plugin.OnTooltipFormatting
|
|
|
|
if notes then
|
|
tip:AddLine(notes, GRAY_FONT_COLOR.r, GRAY_FONT_COLOR.g, GRAY_FONT_COLOR.b, true)
|
|
end
|
|
if type(tipFormatting) == 'function' then
|
|
tip:AddLine(' ')
|
|
tipFormatting(plugin, tip, key)
|
|
end
|
|
|
|
if plugin:GetScript(key) then
|
|
tip:AddLine(' ')
|
|
tip:AddLine(L.IMPORT_SCRIPT_EXISTS, RED_FONT_COLOR:GetRGB())
|
|
end
|
|
end
|
|
|
|
KeyDropdown:SetMenuTable(function(list)
|
|
local plugin = PluginDropdown:GetValue()
|
|
if not plugin then
|
|
return
|
|
end
|
|
for key in plugin:IterateKeys() do
|
|
tinsert(list, {
|
|
text = format('|T%s:14|t %s',
|
|
plugin:GetScript(key) and 518449 or 1319037,
|
|
plugin:GetTitleByKey(key)
|
|
),
|
|
full = plugin:GetTitleByKey(key),
|
|
value = key,
|
|
plugin = plugin,
|
|
tooltipTitle = plugin:GetPluginTitle(),
|
|
tooltipMore = tooltipMore,
|
|
tooltipOnButton = true,
|
|
})
|
|
end
|
|
end)
|
|
KeyDropdown:SetCallback('OnSelectChanged', function()
|
|
self:UpdateControl()
|
|
end)
|
|
end
|
|
|
|
local SelectorNextButton = CreateFrame('Button', nil, frame, 'UIPanelButtonTemplate') do
|
|
SelectorNextButton:SetPoint('BOTTOM', 0, 20)
|
|
SelectorNextButton:SetSize(120, 26)
|
|
SelectorNextButton:SetText(CONTINUE)
|
|
SelectorNextButton:SetScript('OnClick', function()
|
|
local plugin = PluginDropdown:GetValue()
|
|
local key = KeyDropdown:GetValue()
|
|
local db = self.data.db
|
|
db.name = db.name or plugin:GetTitleByKey(key) or plugin:AllocName()
|
|
local script = Addon:GetClass('Script'):New(self.data.db, plugin, key)
|
|
|
|
self:SetScript(script)
|
|
self.PageFrame:SetPage(3)
|
|
end)
|
|
end
|
|
|
|
self.PluginDropdown = PluginDropdown
|
|
self.KeyDropdown = KeyDropdown
|
|
self.SelectorNextButton = SelectorNextButton
|
|
end
|
|
|
|
function Import:InitPageImport(frame)
|
|
local ScriptInfo = CreateFrame('Button', nil, frame) do
|
|
ScriptInfo:SetSize(200, 28)
|
|
ScriptInfo:SetPoint('TOP', 0, -48)
|
|
ScriptInfo:SetScript('OnEnter', function(ScriptInfo)
|
|
UI.OpenScriptTooltip(self.script, ScriptInfo, 'ANCHOR_RIGHT')
|
|
end)
|
|
ScriptInfo:SetScript('OnLeave', function()
|
|
GameTooltip:Hide()
|
|
end)
|
|
|
|
local Icon = ScriptInfo:CreateTexture(nil, 'BORDER') do
|
|
Icon:SetMask([[Interface\Minimap\UI-Minimap-Background]])
|
|
Icon:SetSize(28, 28)
|
|
Icon:SetPoint('LEFT', 5, 0)
|
|
end
|
|
|
|
local Border = ScriptInfo:CreateTexture(nil, 'ARTWORK') do
|
|
Border:SetTexture([[Interface\PetBattles\PetBattleHUD]])
|
|
Border:SetPoint('TOPLEFT', Icon, 'TOPLEFT', 0, 1)
|
|
Border:SetPoint('BOTTOMRIGHT', Icon, 'BOTTOMRIGHT', 1, 0)
|
|
Border:SetTexCoord(0.884765625, 0.943359375, 0.681640625, 0.798828125)
|
|
end
|
|
|
|
local Highlight = ScriptInfo:CreateTexture(nil, 'HIGHLIGHT') do
|
|
Highlight:SetPoint('TOPLEFT', Icon, 'TOPLEFT', -1, 1)
|
|
Highlight:SetPoint('BOTTOMRIGHT', Icon, 'BOTTOMRIGHT', 2, -2)
|
|
Highlight:SetBlendMode('ADD')
|
|
Highlight:SetTexture([[Interface\Minimap\UI-Minimap-ZoomButton-Highlight]])
|
|
end
|
|
|
|
local Highlight = ScriptInfo:CreateTexture(nil, 'HIGHLIGHT') do
|
|
Highlight:SetTexture([[Interface\PVPFrame\PvPMegaQueue]])
|
|
Highlight:SetTexCoord(0.00195313, 0.63867188, 0.76953125, 0.83007813)
|
|
Highlight:SetBlendMode('ADD')
|
|
Highlight:SetPoint('TOPLEFT', 20, -4)
|
|
Highlight:SetPoint('BOTTOMRIGHT', -20, 2)
|
|
end
|
|
|
|
local Text = ScriptInfo:CreateFontString(nil, 'OVERLAY', 'GameFontNormalSmall') do
|
|
Text:SetPoint('LEFT', Icon, 'RIGHT', 3, 0)
|
|
Text:SetPoint('RIGHT', -5, 0)
|
|
Text:SetWordWrap(false)
|
|
ScriptInfo:SetFontString(Text)
|
|
end
|
|
|
|
local Bg = ScriptInfo:CreateTexture(nil, 'BACKGROUND') do
|
|
Bg:SetAllPoints(true)
|
|
Bg:SetAtlas('groupfinder-button-cover')
|
|
end
|
|
|
|
local Bg = ScriptInfo:CreateTexture(nil, 'BACKGROUND', nil, -2) do
|
|
Bg:SetPoint('TOPLEFT', 3, -3)
|
|
Bg:SetPoint('BOTTOMRIGHT', -2, 2)
|
|
Bg:SetColorTexture(0.5, 0.5, 0.5, 0.2)
|
|
end
|
|
|
|
ScriptInfo.Icon = Icon
|
|
end
|
|
|
|
local WarningHelp = CreateFrame('Frame', nil, frame) do
|
|
WarningHelp:SetAllPoints(true)
|
|
|
|
local Text = WarningHelp:CreateFontString(nil, 'OVERLAY', 'GameFontRed') do
|
|
Text:SetPoint('TOP', ScriptInfo, 'BOTTOM', 0, -20)
|
|
Text:SetPoint('LEFT', 60, 0)
|
|
Text:SetPoint('RIGHT', -20, 0)
|
|
Text:SetText(L.SCRIPT_IMPORT_LABEL_COVER)
|
|
end
|
|
|
|
local Icon = WarningHelp:CreateTexture(nil, 'OVERLAY') do
|
|
Icon:SetTexture([[Interface\DialogFrame\UI-Dialog-Icon-AlertNew]])
|
|
Icon:SetSize(32, 32)
|
|
Icon:SetPoint('RIGHT', Text, 'LEFT', -8, 0)
|
|
end
|
|
end
|
|
|
|
local CoverCheck = CreateFrame('CheckButton', nil, frame, 'UICheckButtonTemplate') do
|
|
CoverCheck:SetPoint('BOTTOM', -60, 50)
|
|
CoverCheck:SetSize(26, 26)
|
|
CoverCheck:SetHitRectInsets(0, -100, 0, 0)
|
|
CoverCheck:SetFontString(CoverCheck.text)
|
|
CoverCheck:SetText(L.SCRIPT_IMPORT_LABEL_GOON)
|
|
CoverCheck:SetScript('OnClick', function()
|
|
self:UpdateControl()
|
|
end)
|
|
end
|
|
|
|
local ExtraCheck = CreateFrame('CheckButton', nil, frame, 'UICheckButtonTemplate') do
|
|
ExtraCheck:SetPoint('BOTTOM', CoverCheck, 'TOP', 0, -3)
|
|
ExtraCheck:SetSize(26, 26)
|
|
ExtraCheck:SetHitRectInsets(0, -100, 0, 0)
|
|
ExtraCheck:SetFontString(ExtraCheck.text)
|
|
ExtraCheck:SetText(L.SCRIPT_IMPORT_LABEL_EXTRA)
|
|
end
|
|
|
|
local SaveButton = CreateFrame('Button', nil, frame, 'UIPanelButtonTemplate') do
|
|
SaveButton:SetPoint('BOTTOM', 0, 20)
|
|
SaveButton:SetSize(120, 22)
|
|
SaveButton:SetText(SAVE)
|
|
SaveButton:SetScript('OnClick', function()
|
|
self:OnSaveButtonClick()
|
|
end)
|
|
end
|
|
|
|
self.CoverCheck = CoverCheck
|
|
self.ExtraCheck = ExtraCheck
|
|
self.SaveButton = SaveButton
|
|
self.WarningHelp = WarningHelp
|
|
self.ScriptInfo = ScriptInfo
|
|
end
|
|
|
|
function Import:OnTextChanged()
|
|
local ok, data = Addon:Import(self.EditBox:GetText():trim())
|
|
if not ok then
|
|
self:Clear()
|
|
else
|
|
self:SetData(data)
|
|
end
|
|
end
|
|
|
|
function Import:OnSaveButtonClick()
|
|
self.Frame:Hide()
|
|
self.script:GetPlugin():AddScript(self.script:GetKey(), self.script)
|
|
|
|
if self.extra and self.ExtraCheck:GetChecked() then
|
|
self.script:GetPlugin():OnImport(self.extra)
|
|
end
|
|
end
|
|
|
|
function Import:SetScript(script, extra)
|
|
self.script = script
|
|
self.extra = extra
|
|
self.ExtraCheck:SetShown(extra)
|
|
|
|
if script then
|
|
self.ScriptInfo.Icon:SetTexture(script:GetPlugin():GetPluginIcon())
|
|
self.ScriptInfo:SetText(format('%s-%s', script:GetPlugin():GetPluginTitle(), script:GetName()))
|
|
self.ScriptInfo:Show()
|
|
else
|
|
self.ScriptInfo:Hide()
|
|
end
|
|
|
|
if script and script:GetPlugin():GetScript(script:GetKey()) then
|
|
self.WarningHelp:Show()
|
|
self.CoverCheck:Show()
|
|
else
|
|
self.WarningHelp:Hide()
|
|
self.CoverCheck:Hide()
|
|
end
|
|
|
|
if extra then
|
|
if not self.CoverCheck:IsShown() then
|
|
self.ExtraCheck:SetPoint('BOTTOM', self.CoverCheck, 'BOTTOM')
|
|
else
|
|
self.ExtraCheck:SetPoint('BOTTOM', self.CoverCheck, 'TOP', 0, -3)
|
|
end
|
|
self.ExtraCheck:Show()
|
|
else
|
|
self.ExtraCheck:Hide()
|
|
end
|
|
|
|
self:UpdateControl()
|
|
end
|
|
|
|
function Import:UpdateControl()
|
|
if not self.script then
|
|
self.SaveButton:Disable()
|
|
elseif self.script:GetPlugin():GetScript(self.script:GetKey()) then
|
|
self.SaveButton:SetEnabled(self.CoverCheck:GetChecked())
|
|
else
|
|
self.SaveButton:Enable()
|
|
end
|
|
|
|
self.WelcomeNextButton:SetEnabled(not not self.data)
|
|
self.SelectorNextButton:SetEnabled(self.PluginDropdown:GetValue() and self.KeyDropdown:GetValue())
|
|
end
|
|
|
|
function Import:UpdateData()
|
|
local data = self.data
|
|
if not data or not data.db then
|
|
self.data = nil
|
|
return self.PageFrame:SetPage(1)
|
|
end
|
|
|
|
if data.warning then
|
|
return self:ShowWarning(data.warning)
|
|
end
|
|
|
|
local plugin = data.plugin and Addon:GetPlugin(data.plugin)
|
|
if not plugin or not data.key then
|
|
return self:ShowWarning(L.IMPORT_SHARED_STRING_WARNING)
|
|
end
|
|
|
|
local script = Addon:GetClass('Script'):New(data.db, plugin, data.key)
|
|
self:SetScript(script, data.extra)
|
|
self.PageFrame:SetPage(3)
|
|
end
|
|
|
|
function Import:ShowWarning(warning)
|
|
self.WelcomeWarning.Text:SetText(warning)
|
|
self.WelcomeWarning:Show()
|
|
end
|
|
|
|
function Import:Update()
|
|
self:UpdateData()
|
|
self:UpdateControl()
|
|
end
|
|
|
|
function Import:Clear()
|
|
self.data = nil
|
|
self.script = nil
|
|
self:Update()
|
|
end
|
|
|
|
function Import:SetData(data)
|
|
if not data.db or not data.db.code then
|
|
data = nil
|
|
end
|
|
self.data = data
|
|
self.script = nil
|
|
self:Update()
|
|
self.EditBox:ClearFocus()
|
|
end
|
|
|