diff --git a/src/game/GameView.cpp b/src/game/GameView.cpp index 387289ab3..e8ebfdaf6 100644 --- a/src/game/GameView.cpp +++ b/src/game/GameView.cpp @@ -1303,6 +1303,8 @@ void GameView::NotifyNotificationsChanged(GameModel * sender) tempButton = new ui::Button(ui::Point(XRES-20, currentY), ui::Point(15, 15)); tempButton->SetIcon(IconClose); tempButton->SetActionCallback(new CloseNotificationButtonAction(this, *iter)); + tempButton->Appearance.Margin.Left+=2; + tempButton->Appearance.Margin.Top+=2; tempButton->Appearance.BorderInactive = style::Colour::WarningTitle; tempButton->Appearance.TextInactive = style::Colour::WarningTitle; AddComponent(tempButton); diff --git a/src/search/SearchView.cpp b/src/search/SearchView.cpp index d5aec303c..7603bd0dd 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); diff --git a/src/search/SearchView.h b/src/search/SearchView.h index eb7dade93..83a64c2fc 100644 --- a/src/search/SearchView.h +++ b/src/search/SearchView.h @@ -36,6 +36,7 @@ private: ui::Button * unpublishSelected; ui::Button * favouriteSelected; ui::Button * clearSelection; + void clearSearch(); void doSearch(); public: void NotifySaveListChanged(SearchModel * sender); @@ -46,6 +47,7 @@ public: void NotifyShowFavouriteChanged(SearchModel * sender); void NotifyAuthUserChanged(Client * sender); void CheckAccess(); + virtual void OnTryOkay(OkayMethod method); SearchView(); virtual ~SearchView(); void AttachController(SearchController * _c) { c = _c; }