diff options
| author | Simon Robertshaw <simon@hardwired.org.uk> | 2012-04-19 14:22:18 (GMT) |
|---|---|---|
| committer | Simon Robertshaw <simon@hardwired.org.uk> | 2012-04-19 14:22:18 (GMT) |
| commit | c4bace95bf97546ecb2fff4343fe82d0540d34ab (patch) | |
| tree | a35378f9a3062041751606239d82fd45e92b7062 /src/stamps/StampsView.cpp | |
| parent | e9fc64eed6e5cbf5e750063e1ad2e30887840dbf (diff) | |
| download | powder-c4bace95bf97546ecb2fff4343fe82d0540d34ab.zip powder-c4bace95bf97546ecb2fff4343fe82d0540d34ab.tar.gz | |
Allow deleting of stamps
Diffstat (limited to 'src/stamps/StampsView.cpp')
| -rw-r--r-- | src/stamps/StampsView.cpp | 43 |
1 files changed, 42 insertions, 1 deletions
diff --git a/src/stamps/StampsView.cpp b/src/stamps/StampsView.cpp index c0d5981..883cabd 100644 --- a/src/stamps/StampsView.cpp +++ b/src/stamps/StampsView.cpp @@ -9,7 +9,6 @@ #include "client/Client.h" #include "StampsView.h" -#include "interface/SaveButton.h" #include "dialogues/ErrorMessage.h" #include "StampsController.h" #include "StampsModel.h" @@ -50,6 +49,22 @@ StampsView::StampsView(): }; previousButton->SetActionCallback(new PrevPageAction(this)); previousButton->SetAlignment(AlignLeft, AlignBottom); + + class RemoveSelectedAction : public ui::ButtonAction + { + StampsView * v; + public: + RemoveSelectedAction(StampsView * _v) { v = _v; } + void ActionCallback(ui::Button * sender) + { + v->c->RemoveSelected(); + } + }; + + removeSelected = new ui::Button(ui::Point((((XRES+BARSIZE)-100)/2), YRES+MENUSIZE-18), ui::Point(100, 16), "Delete"); + removeSelected->Visible = false; + removeSelected->SetActionCallback(new RemoveSelectedAction(this)); + AddComponent(removeSelected); } void StampsView::OnTick(float dt) @@ -108,6 +123,10 @@ void StampsView::NotifyStampsListChanged(StampsModel * sender) { v->c->OpenStamp(sender->GetSave()); } + virtual void SelectedCallback(ui::SaveButton * sender) + { + v->c->Selected(sender->GetSave()->GetName(), sender->GetSelected()); + } }; for(i = 0; i < saves.size(); i++) { @@ -126,6 +145,7 @@ void StampsView::NotifyStampsListChanged(StampsModel * sender) ), ui::Point(buttonWidth, buttonHeight), saves[i]); + saveButton->SetSelectable(true); saveButton->SetActionCallback(new SaveOpenAction(this)); stampButtons.push_back(saveButton); AddComponent(saveButton); @@ -133,6 +153,27 @@ void StampsView::NotifyStampsListChanged(StampsModel * sender) } } +void StampsView::NotifySelectedChanged(StampsModel * sender) +{ + vector<std::string> selected = sender->GetSelected(); + for(int j = 0; j < stampButtons.size(); j++) + { + stampButtons[j]->SetSelected(false); + for(int i = 0; i < selected.size(); i++) + { + if(stampButtons[j]->GetSave()->GetName()==selected[i]) + stampButtons[j]->SetSelected(true); + } + } + + if(selected.size()) + { + removeSelected->Visible = true; + } + else + removeSelected->Visible = false; +} + void StampsView::OnMouseWheel(int x, int y, int d) { if(!d) |
