1
0
Fork 0

allow top level <font> definition that applies to text in the whole dialog

and makes the layouter use this font's metrics
This commit is contained in:
mfranz 2006-01-27 12:57:13 +00:00
parent 6c331a55a8
commit cabf53537a
2 changed files with 14 additions and 2 deletions

View file

@ -420,8 +420,14 @@ FGDialog::display (SGPropertyNode * props)
// Let the layout widget work in the same property subtree.
LayoutWidget wid(props);
puFont *fnt = _gui->getDefaultFont();
wid.setDefaultFont(fnt, int(fnt->getPointSize()));
SGPropertyNode *fontnode = props->getNode("font");
if (fontnode) {
FGFontCache *fc = _gui->get_fontcache();
_font = fc->get(fontnode);
} else {
_font = _gui->getDefaultFont();
}
wid.setDefaultFont(_font, int(_font->getPointSize()));
int pw=0, ph=0;
int px, py, savex, savey;
@ -681,6 +687,8 @@ FGDialog::setupObject (puObject * object, SGPropertyNode * props)
FGFontCache *fc = _gui->get_fontcache();
puFont *lfnt = fc->get(nft);
object->setLabelFont(*lfnt);
} else {
object->setLabelFont(*_font);
}
if (props->hasValue("property")) {

View file

@ -142,6 +142,10 @@ private:
// The GUI subsystem.
NewGUI * _gui;
// The dialog font. Defaults to the global gui font, but can get
// overridden by a top level font definition.
puFont * _font;
// PUI provides no way for userdata to be deleted automatically
// with a GUI object, so we have to keep track of all the special
// data we allocated and then free it manually when the dialog