Mercurial > projects > mde
view mde/gui/widget/Popup.d @ 111:1655693702fc
Resolved ticket #4, allowing widgets to reload strings and recalculate sizes mid-run.
Removed prefinalize and finalize and added setup as the new second initialization phase, which can be re-run.
author | Diggory Hardy <diggory.hardy@gmail.com> |
---|---|
date | Sat, 06 Dec 2008 17:41:42 +0000 |
parents | c9fc2d303178 |
children | fe061009029d |
line wrap: on
line source
/* LICENSE BLOCK Part of mde: a Modular D game-oriented Engine Copyright © 2007-2008 Diggory Hardy This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. */ /// Pop-up widgets. module mde.gui.widget.Popup; import mde.gui.widget.Widget; import mde.content.Content; /** Shows a "pop-up" widget tree when clicked. */ class PopupButtonWidget : AButtonWidget { this (IWidgetManager mgr, widgetID id, WidgetData data, IContent content) { WDCheck (data, 1,2); subWidget = mgr.makeWidget (data.strings[0], content); adapter = mgr.renderer.getAdapter; adapter.text = data.strings[1]; adapter.getDimensions (mw, mh); w = mw; h = mh; super (mgr, id, data); } bool setup (uint n, uint flags) { return subWidget.setup (n,flags); } bool saveChanges () { return subWidget.saveChanges; } void activated () { mgr.addPopup (x,y, subWidget); } void draw () { super.draw (); adapter.draw (x,y); } protected: IChildWidget subWidget; IRenderer.TextAdapter adapter; }