Mercurial > projects > mde
view mde/gui/widget/Popup.d @ 108:c9fc2d303178
Added capability for border-less pop-up widgets. Simple pop-up menu.
Removed grid-layout spacing (may allow any widget to provide spacing later).
author | Diggory Hardy <diggory.hardy@gmail.com> |
---|---|
date | Wed, 03 Dec 2008 19:37:32 +0000 |
parents | |
children | 1655693702fc |
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 (data.strings[1]); adapter.getDimensions (mw, mh); w = mw; h = mh; super (mgr, id, data); } void activated () { mgr.addPopup (x,y, subWidget); } void draw () { super.draw (); adapter.draw (x,y); } protected: IChildWidget subWidget; IRenderer.TextAdapter adapter; }