- fixed SELECT_FIRST behavior: 0 >= 0

- added DoGetBestSize to PackTotalsPanel, so the text always fits

git-svn-id: svn://svn.code.sf.net/p/magicseteditor/code/trunk@1313 0fc631ac-6414-0410-93d0-97cfa31319b6
This commit is contained in:
twanvl
2009-01-09 02:22:43 +00:00
parent 7d1bb77163
commit 559a6ce1d8
2 changed files with 26 additions and 4 deletions
+22 -1
View File
@@ -99,6 +99,7 @@ class PackTotalsPanel : public wxPanel {
void addPack(PackType& pack, int copies);
void addItemRef(PackItemRef& item, int copies);
#endif
virtual wxSize DoGetBestSize() const;
private:
DECLARE_EVENT_TABLE();
GameP game;
@@ -149,7 +150,6 @@ void PackTotalsPanel::draw(DC& dc) {
dc.DrawLine(0, y-2, size.x, y-2);
y += 7;
drawItem(dc, y, _LABEL_("total cards"), total);
}
void PackTotalsPanel::drawItem(DC& dc, int& y, const String& name, double value) {
wxSize size = dc.GetSize();
@@ -161,6 +161,27 @@ void PackTotalsPanel::drawItem(DC& dc, int& y, const String& name, double value
y += h + 10;
}
wxSize PackTotalsPanel::DoGetBestSize() const {
// count lines
int lines = 0;
#if USE_NEW_PACK_SYSTEM
if (game && generator.set) {
FOR_EACH(pack, game->pack_types) {
PackInstance& i = generator.get(pack);
if (pack->summary && i.has_cards()) lines++;
}
}
#else
lines = game ? (int)game->pack_items.size() : 0;
#endif
// don't forget the total
lines++;
// size
int height = lines * (GetCharHeight() + 10) + 7 - 10;
wxSize ws = GetSize(), cs = GetClientSize();
return wxSize(0,height) + ws - cs;
}
void PackTotalsPanel::setGame(const GameP& game) {
this->game = game;
#if !USE_NEW_PACK_SYSTEM