diff options
| author | Simon Robertshaw <simon@hardwired.org.uk> | 2012-08-05 20:07:22 (GMT) |
|---|---|---|
| committer | Simon Robertshaw <simon@hardwired.org.uk> | 2012-08-05 20:07:22 (GMT) |
| commit | 0f4bde939463fca4e3be1ea1cb75b151eeba6f18 (patch) | |
| tree | 1c8c29be424e319f5515c23f86df88b4730d8d0b /src/search/SearchView.cpp | |
| parent | 8cadc10f8b33e77e204e1f4b772f96333992c56c (diff) | |
| download | powder-0f4bde939463fca4e3be1ea1cb75b151eeba6f18.zip powder-0f4bde939463fca4e3be1ea1cb75b151eeba6f18.tar.gz | |
Clear search button
Diffstat (limited to 'src/search/SearchView.cpp')
| -rw-r--r-- | src/search/SearchView.cpp | 37 |
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); |
