(svn r16871) -Codechange: Generalize GetWidgetContentSize to UpdateWidgetSize for better control over widget size and resize steps.

This commit is contained in:
alberth
2009-07-18 10:46:55 +00:00
parent fec1178abb
commit 543b86307f
4 changed files with 177 additions and 134 deletions

View File

@@ -83,16 +83,18 @@ struct SelectGameWindow : public Window {
}
}
virtual Dimension GetWidgetContentSize(int widget)
virtual void UpdateWidgetSize(int widget, Dimension *size, const Dimension &padding, Dimension *resize)
{
Dimension d = {0, 0};
if (widget == SGI_DIFFICULTIES) {
for (uint i = STR_DIFFICULTY_LEVEL_EASY; i <= STR_DIFFICULTY_LEVEL_CUSTOM; i++) {
SetDParam(0, i);
d = maxdim(d, GetStringBoundingBox(STR_INTRO_DIFFICULTY));
}
if (widget != SGI_DIFFICULTIES) return;
Dimension textdim = {0, 0};
for (uint i = STR_DIFFICULTY_LEVEL_EASY; i <= STR_DIFFICULTY_LEVEL_CUSTOM; i++) {
SetDParam(0, i);
textdim = maxdim(textdim, GetStringBoundingBox(STR_INTRO_DIFFICULTY));
}
return d;
textdim.width += padding.width;
textdim.height += padding.height;
*size = maxdim(*size, textdim);
}
virtual void OnClick(Point pt, int widget)