diff options
Diffstat (limited to 'gui/ThemeEval.cpp')
| -rw-r--r-- | gui/ThemeEval.cpp | 21 | 
1 files changed, 16 insertions, 5 deletions
| diff --git a/gui/ThemeEval.cpp b/gui/ThemeEval.cpp index e13ccc0176..e2c34d8128 100644 --- a/gui/ThemeEval.cpp +++ b/gui/ThemeEval.cpp @@ -157,15 +157,26 @@ void ThemeEval::addWidget(const Common::String &name, int w, int h) {  	_curLayout.top()->addChild(widget);  } -void ThemeEval::addDialog(const Common::String &name) { +void ThemeEval::addDialog(const Common::String &name, const Common::String &overlays) {  	ThemeLayout *layout = new ThemeLayoutMain();  	_layouts[name] = layout; + +	int16 x, y; +	uint16 w, h; -	layout->setX(0); -	layout->setY(0); -	layout->setWidth(g_system->getOverlayWidth()); -	layout->setHeight(g_system->getOverlayHeight()); +	if (overlays == "screen" || overlays.empty()) { +		x = y = 0; +		w = g_system->getOverlayWidth(); +		h = g_system->getOverlayHeight(); +	} else if (!getWidgetData(overlays, x, y, w, h)) { +		error("Error when loading dialog position for '%s'", overlays.c_str()); +	} +	layout->setX(x); +	layout->setY(y); +	layout->setWidth(w); +	layout->setHeight(h); +  	layout->setPadding(  		getVar("Globals.Padding.Left", 0),  		getVar("Globals.Padding.Right", 0), | 
