summaryrefslogtreecommitdiff
path: root/src/search/SearchView.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/search/SearchView.cpp')
-rw-r--r--src/search/SearchView.cpp37
1 files changed, 35 insertions, 2 deletions
diff --git a/src/search/SearchView.cpp b/src/search/SearchView.cpp
index d5aec30..7603bd0 100644
--- a/src/search/SearchView.cpp
+++ b/src/search/SearchView.cpp
@@ -31,12 +31,13 @@ SearchView::SearchView():
v->doSearch();
}
};
- searchField = new ui::Textbox(ui::Point(60, 10), ui::Point((XRES+BARSIZE)-226, 16), "", "[search]");
+ searchField = new ui::Textbox(ui::Point(60, 10), ui::Point((XRES+BARSIZE)-239, 16), "", "[search]");
searchField->Appearance.icon = IconSearch;
searchField->Appearance.HorizontalAlign = ui::Appearance::AlignLeft;
searchField->Appearance.VerticalAlign = ui::Appearance::AlignMiddle;
searchField->SetActionCallback(new SearchAction(this));
+
class SortAction : public ui::ButtonAction
{
SearchView * v;
@@ -80,13 +81,33 @@ SearchView::SearchView():
v->c->ShowFavourite(sender->GetToggleState());
}
};
- favButton = new ui::Button(searchField->Position+ui::Point(searchField->Size.X, 0), ui::Point(16, 16), "");
+ favButton = new ui::Button(searchField->Position+ui::Point(searchField->Size.X+14, 0), ui::Point(16, 16), "");
favButton->SetIcon(IconFavourite);
favButton->SetTogglable(true);
+ favButton->Appearance.Margin.Left+=2;
favButton->SetActionCallback(new FavAction(this));
favButton->Appearance.HorizontalAlign = ui::Appearance::AlignCentre;
favButton->Appearance.VerticalAlign = ui::Appearance::AlignMiddle;
AddComponent(favButton);
+
+ class ClearSearchAction : public ui::ButtonAction
+ {
+ SearchView * v;
+ public:
+ ClearSearchAction(SearchView * _v) { v = _v; }
+ void ActionCallback(ui::Button * sender)
+ {
+ v->clearSearch();
+ }
+ };
+ ui::Button * clearSearchButton = new ui::Button(searchField->Position+ui::Point(searchField->Size.X-1, 0), ui::Point(16, 16), "");
+ clearSearchButton->SetIcon(IconClose);
+ clearSearchButton->SetActionCallback(new ClearSearchAction(this));
+ clearSearchButton->Appearance.Margin.Left+=2;
+ clearSearchButton->Appearance.Margin.Top+=2;
+ clearSearchButton->Appearance.HorizontalAlign = ui::Appearance::AlignCentre;
+ clearSearchButton->Appearance.VerticalAlign = ui::Appearance::AlignMiddle;
+ AddComponent(clearSearchButton);
class NextPageAction : public ui::ButtonAction
{
@@ -199,6 +220,18 @@ void SearchView::doSearch()
c->DoSearch(searchField->GetText());
}
+
+void SearchView::clearSearch()
+{
+ searchField->SetText("");
+ c->DoSearch(searchField->GetText(), true);
+}
+
+void SearchView::OnTryOkay(OkayMethod method)
+{
+ c->DoSearch(searchField->GetText(), true);
+}
+
SearchView::~SearchView()
{
Client::Ref().RemoveListener(this);