init
This commit is contained in:
@@ -0,0 +1,175 @@
|
||||
--[[
|
||||
searchFrame.lua
|
||||
A searcn frame widget
|
||||
--]]
|
||||
|
||||
local Bagnon = LibStub('AceAddon-3.0'):GetAddon('Bagnon')
|
||||
local L = LibStub('AceLocale-3.0'):GetLocale('Bagnon')
|
||||
local SearchFrame = Bagnon.Classy:New('EditBox')
|
||||
SearchFrame:Hide()
|
||||
|
||||
Bagnon.SearchFrame = SearchFrame
|
||||
|
||||
SearchFrame.backdrop = {
|
||||
edgeFile = [[Interface\Tooltips\UI-Tooltip-Border]],
|
||||
bgFile = [[Interface\ChatFrame\ChatFrameBackground]],
|
||||
insets = {
|
||||
left = 2,
|
||||
right = 2,
|
||||
top = 2,
|
||||
bottom = 2
|
||||
},
|
||||
tile = true,
|
||||
tileSize = 16,
|
||||
edgeSize = 16,
|
||||
}
|
||||
|
||||
function SearchFrame:New(frameID, parent)
|
||||
local f = self:Bind(CreateFrame('EditBox', nil, parent))
|
||||
f:SetToplevel(true)
|
||||
f:Hide()
|
||||
|
||||
f:SetFrameStrata('DIALOG')
|
||||
f:SetTextInsets(8, 8, 0, 0)
|
||||
f:SetFontObject('ChatFontNormal')
|
||||
|
||||
f:SetBackdrop(f.backdrop)
|
||||
f:SetBackdropColor(0, 0, 0, 0.8)
|
||||
f:SetBackdropBorderColor(1, 1, 1, 0.8)
|
||||
|
||||
f:SetScript('OnShow', f.OnShow)
|
||||
f:SetScript('OnHide', f.OnHide)
|
||||
f:SetScript('OnTextChanged', f.OnTextChanged)
|
||||
f:SetScript('OnEscapePressed', f.OnEscapePressed)
|
||||
f:SetScript('OnEnterPressed', f.OnEnterPressed)
|
||||
|
||||
f:SetFrameID(frameID)
|
||||
f:UpdateEvents()
|
||||
f:SetAutoFocus(false)
|
||||
-- f:UpdateShown()
|
||||
-- f:UpdateText()
|
||||
|
||||
return f
|
||||
end
|
||||
|
||||
--[[ Messages ]]--
|
||||
|
||||
function SearchFrame:TEXT_SEARCH_ENABLE(msg, frameID)
|
||||
if self:GetFrameID() == frameID then
|
||||
self:UpdateShown()
|
||||
end
|
||||
end
|
||||
|
||||
function SearchFrame:TEXT_SEARCH_DISABLE(msg, frameID)
|
||||
if self:GetFrameID() == frameID then
|
||||
self:UpdateShown()
|
||||
end
|
||||
end
|
||||
|
||||
function SearchFrame:TEXT_SEARCH_UPDATE(msg, search)
|
||||
self:UpdateText()
|
||||
end
|
||||
|
||||
|
||||
--[[ Frame Events ]]--
|
||||
|
||||
function SearchFrame:OnShow()
|
||||
self:UpdateEvents()
|
||||
self:SetSearch(self:GetLastSearch())
|
||||
self:HighlightText()
|
||||
self:SetFocus()
|
||||
end
|
||||
|
||||
function SearchFrame:OnHide()
|
||||
self:UpdateEvents()
|
||||
|
||||
self:ClearFocus()
|
||||
self:SetSearch('')
|
||||
end
|
||||
|
||||
function SearchFrame:OnTextChanged()
|
||||
self:SetSearch(self:GetText())
|
||||
end
|
||||
|
||||
function SearchFrame:OnEscapePressed()
|
||||
self:DisableSearch()
|
||||
end
|
||||
|
||||
function SearchFrame:OnEnterPressed()
|
||||
self:DisableSearch()
|
||||
end
|
||||
|
||||
|
||||
--[[ Update Methods ]]--
|
||||
|
||||
function SearchFrame:UpdateEvents()
|
||||
self:UnregisterAllMessages()
|
||||
|
||||
self:RegisterMessage('TEXT_SEARCH_ENABLE')
|
||||
self:RegisterMessage('TEXT_SEARCH_DISABLE')
|
||||
--[[
|
||||
if self:IsVisible() then
|
||||
self:RegisterMessage('TEXT_SEARCH_UPDATE')
|
||||
end
|
||||
--]]
|
||||
end
|
||||
|
||||
function SearchFrame:UpdateShown()
|
||||
if self:IsSearchEnabled() then
|
||||
if not self:IsShown() then
|
||||
UIFrameFadeIn(self, 0.1)
|
||||
end
|
||||
else
|
||||
self:Hide()
|
||||
end
|
||||
end
|
||||
|
||||
function SearchFrame:UpdateText()
|
||||
self:SetText(self:GetSearch())
|
||||
end
|
||||
|
||||
|
||||
--[[ Propertiesish ]]--
|
||||
|
||||
function SearchFrame:SetFrameID(frameID)
|
||||
if self:GetFrameID() ~= frameID then
|
||||
self.frameID = frameID
|
||||
self:UpdateShown()
|
||||
self:UpdateText()
|
||||
end
|
||||
end
|
||||
|
||||
function SearchFrame:GetFrameID()
|
||||
return self.frameID
|
||||
end
|
||||
|
||||
|
||||
--[[ Frame Settings ]]--
|
||||
|
||||
function SearchFrame:GetSettings()
|
||||
return Bagnon.FrameSettings:Get(self:GetFrameID())
|
||||
end
|
||||
|
||||
function SearchFrame:SetSearch(search)
|
||||
Bagnon.Settings:SetTextSearch(search)
|
||||
end
|
||||
|
||||
function SearchFrame:GetSearch()
|
||||
return Bagnon.Settings:GetTextSearch()
|
||||
end
|
||||
|
||||
function SearchFrame:GetLastSearch()
|
||||
return Bagnon.Settings:GetLastTextSearch()
|
||||
end
|
||||
|
||||
function SearchFrame:EnableSearch()
|
||||
self:GetSettings():EnableTextSearch()
|
||||
end
|
||||
|
||||
function SearchFrame:DisableSearch()
|
||||
self:GetSettings():DisableTextSearch()
|
||||
end
|
||||
|
||||
function SearchFrame:IsSearchEnabled()
|
||||
return self:GetSettings():IsTextSearchEnabled()
|
||||
end
|
||||
Reference in New Issue
Block a user