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.

64 lines
1.9 KiB

--[[
InputBox.lua
@Author : DengSir (tdaddon@163.com)
@Link : https://dengsir.github.io
]]
local MAJOR, MINOR = 'InputBox', 2
local InputBox = LibStub('tdGUI-1.0'):NewClass(MAJOR, MINOR, 'EditBox')
if not InputBox then return end
function InputBox:Constructor()
local tLeft = self:CreateTexture(nil, 'BACKGROUND') do
tLeft:SetTexture([[Interface\Common\Common-Input-Border]])
tLeft:SetTexCoord(0, 0.0625, 0, 0.625)
tLeft:SetWidth(8)
tLeft:SetPoint('TOPLEFT')
tLeft:SetPoint('BOTTOMLEFT')
end
local tRight = self:CreateTexture(nil, 'BACKGROUND') do
tRight:SetTexture([[Interface\Common\Common-Input-Border]])
tRight:SetTexCoord(0.9375, 1.0, 0, 0.625)
tRight:SetWidth(8)
tRight:SetPoint('TOPRIGHT')
tRight:SetPoint('BOTTOMRIGHT')
end
local tMid = self:CreateTexture(nil, 'BACKGROUND') do
tMid:SetTexture([[Interface\Common\Common-Input-Border]])
tMid:SetTexCoord(0.0625, 0.9375, 0, 0.625)
tMid:SetPoint('TOPLEFT', tLeft, 'TOPRIGHT')
tMid:SetPoint('BOTTOMRIGHT', tRight, 'BOTTOMLEFT')
end
local Prompt = self:CreateFontString(nil, 'ARTWORK', 'GameFontDisableSmall') do
Prompt:SetJustifyH('LEFT')
Prompt:SetJustifyV('TOP')
Prompt:SetPoint('LEFT', 8, 0)
end
self.Prompt = Prompt
self.Label = Label
self:SetFontObject('GameFontHighlightSmall')
self:SetAutoFocus(nil)
self:SetTextInsets(8, 8, 0, 0)
self:SetScript('OnTextChanged', self.OnTextChanged)
self:SetScript('OnEscapePressed', self.ClearFocus)
end
function InputBox:OnTextChanged(...)
self.Prompt:SetShown(self:GetText() == '')
self:Fire('OnTextChanged', ...)
end
function InputBox:SetPrompt(prompt)
self.Prompt:SetText(prompt)
end
function InputBox:GetPrompt()
return self.Prompt:GetText()
end