perliminaries for filtered card list

git-svn-id: svn://svn.code.sf.net/p/magicseteditor/code/trunk@152 0fc631ac-6414-0410-93d0-97cfa31319b6
This commit is contained in:
twanvl
2006-12-22 23:03:02 +00:00
parent c85e821f00
commit 106afceaf9
3 changed files with 40 additions and 0 deletions
+19
View File
@@ -18,6 +18,7 @@
#include <wx/splitter.h>
DECLARE_TYPEOF_COLLECTION(StatsDimensionP);
DECLARE_TYPEOF_COLLECTION(String);
DECLARE_TYPEOF_COLLECTION(CardP);
// ----------------------------------------------------------------------------- : StatCategoryList
@@ -131,6 +132,24 @@ void StatsPanel::onCommand(int id) {
}
}
class StatsFilter : public CardListFilter {
public:
StatsFilter(Set& set, const vector<StatsDimensionP>& dims, const vector<String>& values)
: set(set), dims(dims), values(values)
{}
virtual bool keep(const CardP& card) {
Context& ctx = set.getContext(card);
FOR_EACH_2(d, dims, v, values) {
if (*d->script.invoke(ctx) != v) return false;
}
return true;
}
private:
Set& set;
vector<StatsDimensionP> dims;
vector<String> values;
};
// ----------------------------------------------------------------------------- : Selection
CardP StatsPanel::selectedCard() const {