From 013b5dedd6dff33b61b2405be713b5fd9d6e739d Mon Sep 17 00:00:00 2001 From: "James D. Callahan III" Date: Tue, 23 Mar 2010 01:19:58 -0400 Subject: [PATCH] Modified the search editbox to have a 10-line history (accessible by up/down keys) and to search as you type. --- Frame.lua | 68 +++++++++++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 50 insertions(+), 18 deletions(-) diff --git a/Frame.lua b/Frame.lua index 166944c..552557e 100644 --- a/Frame.lua +++ b/Frame.lua @@ -1410,25 +1410,27 @@ ARL_ClearButton:SetScript("OnClick", MainPanel.search_editbox = CreateFrame("EditBox", nil, MainPanel, "InputBoxTemplate") MainPanel.search_editbox:SetText(L["SEARCH_BOX_DESC"]) +MainPanel.search_editbox:SetHistoryLines(10) -local function EditBox_OnEnterPressed(self) - local searchtext = self:GetText() - searchtext = searchtext:trim() +MainPanel.search_editbox:SetScript("OnEnterPressed", + function(self) + local searchtext = self:GetText() + searchtext = searchtext:trim() - if searchtext and searchtext ~= L["SEARCH_BOX_DESC"] then - self.prev_search = searchtext + if searchtext and searchtext ~= L["SEARCH_BOX_DESC"] then + self.prev_search = searchtext - SearchRecipes(searchtext) - MainPanel.scroll_frame:Update(false, false) + self:AddHistoryLine(searchtext) + SearchRecipes(searchtext) + MainPanel.scroll_frame:Update(false, false) - ARL_ExpandButton:SetText(L["EXPANDALL"]) - SetTooltipScripts(ARL_ExpandButton, L["EXPANDALL_DESC"]) + ARL_ExpandButton:SetText(L["EXPANDALL"]) + SetTooltipScripts(ARL_ExpandButton, L["EXPANDALL_DESC"]) - ARL_SearchButton:SetNormalFontObject("GameFontDisableSmall") - ARL_SearchButton:Disable() - end -end -MainPanel.search_editbox:SetScript("OnEnterPressed", EditBox_OnEnterPressed) + ARL_SearchButton:SetNormalFontObject("GameFontDisableSmall") + ARL_SearchButton:Disable() + end + end) MainPanel.search_editbox:SetScript("OnEditFocusGained", function(self) @@ -1438,17 +1440,47 @@ MainPanel.search_editbox:SetScript("OnEditFocusGained", end) MainPanel.search_editbox:SetScript("OnEditFocusLost", - function(this) - if this:GetText() == "" then - this:SetText(L["SEARCH_BOX_DESC"]) + function(self) + local text = self:GetText() + + if text == "" then + self:SetText(L["SEARCH_BOX_DESC"]) + return + self:AddHistoryLine(text) end end) + +MainPanel.search_editbox:SetScript("OnTextSet", + function(self) + local text = self:GetText() + + if text ~= "" and text ~= L["SEARCH_BOX_DESC"] and text ~= self.prev_search then + ARL_SearchButton:SetNormalFontObject("GameFontNormalSmall") + ARL_SearchButton:Enable() + else + local recipe_list = private.recipe_list + + for spell_id in pairs(recipe_list) do + local recipe = recipe_list[spell_id] + + recipe.is_relevant = true + end + ARL_SearchButton:SetNormalFontObject("GameFontDisableSmall") + ARL_SearchButton:Disable() + end + end) + MainPanel.search_editbox:SetScript("OnTextChanged", - function(self) + function(self, is_typed) + if not is_typed then + return + end local text = self:GetText() if text ~= "" and text ~= L["SEARCH_BOX_DESC"] and text ~= self.prev_search then + SearchRecipes(text) + MainPanel.scroll_frame:Update(false, false) ARL_SearchButton:SetNormalFontObject("GameFontNormalSmall") ARL_SearchButton:Enable() else -- 1.7.9.5