Browse Source

move search field change logic to mainframe

master
tekkub ʕ ´ᴥ` ʔ 5 years ago
parent
commit
35d9a4d95e
  1. 2
      LibItemSearch-1.0.lua
  2. 10
      frames/MainFrame.lua
  3. 12
      frames/SearchField.lua

2
LibItemSearch-1.0.lua

@ -29,7 +29,7 @@ local ItemSearch = ns.LibItemSearch
--[[ general search ]]--
function ItemSearch:Find(itemLink, search)
if not search then
if not search or search == "" then
return true
end

10
frames/MainFrame.lua

@ -12,6 +12,8 @@ local NUMROWS = 14
function ns.NewMainFrame()
local GVS = CreateFrame("frame", nil, MerchantFrame)
local search = ns.MakeSearchField(GVS, scrollbar.Refresh)
local rows = {}
for i=1,NUMROWS do
local row = ns.NewMerchantItemFrame(GVS)
@ -27,15 +29,15 @@ function ns.NewMainFrame()
rows[i] = row
end
local scrollbar = ns.NewScrollBar(GVS, 0, 5)
function scrollbar:Refresh()
local offset = scrollbar:GetValue()
local searchstring = search:GetText()
local n = GetMerchantNumItems()
local row, n_searchmatch = 1, 0
for i=1,n do
local link = GetMerchantItemLink(i)
if ItemSearch:Find(link, GVS.searchstring) then
if ItemSearch:Find(link, searchstring) then
if n_searchmatch >= offset and n_searchmatch < offset + NUMROWS then
rows[row]:SetValue(i)
row = row + 1
@ -47,9 +49,7 @@ function ns.NewMainFrame()
for i=row,NUMROWS do rows[i]:Hide() end
end
ns.MakeSearchField(GVS, scrollbar.Refresh)
search:SetScript("OnTextChanged", Refresh)
GVS:EnableMouseWheel(true)
GVS:SetScript("OnMouseWheel", function(self, value)

12
frames/SearchField.lua

@ -2,15 +2,9 @@
local myname, ns = ...
function ns.MakeSearchField(GVS, Refresh)
local editbox = ns.NewTextInput(GVS)
editbox:SetPoint("BOTTOMLEFT", GVS, "TOPLEFT", 55, 9)
editbox:SetScript("OnTextChanged", function(self)
local t = self:GetText()
GVS.searchstring = t ~= "" and t ~= "Search..." and t:lower() or nil
Refresh()
end)
function ns.MakeSearchField(parent)
local editbox = ns.NewTextInput(parent)
editbox:SetPoint("BOTTOMLEFT", parent, "TOPLEFT", 55, 9)
editbox.placeholder:SetText("Search...")

Loading…
Cancel
Save