Mercurial > projects > mde
view mde/gui/renderer/SimpleRenderer.d @ 39:5132301e9ed7
Implemented widget saving.
Widget creation data saving (sub-widgets, etc:) code there but not used.
Widget mutable data saving & loading: window size/position, row/column dimensions saved (still needs a fix in GridWidget.setSize()).
committer: Diggory Hardy <diggory.hardy@gmail.com>
author | Diggory Hardy <diggory.hardy@gmail.com> |
---|---|
date | Wed, 07 May 2008 13:07:03 +0100 |
parents | 8c4c96f04e7f |
children | b3a6ca4516b4 |
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/>. */ /** A simple renderer. */ module mde.gui.renderer.SimpleRenderer; import mde.gui.renderer.IRenderer; import gl = mde.gl.basic; /** Interface for renderers. * * Renderers provide unified drawing methods for widget, e.g. to draw a window background, a frame, * or a button. The renderer will effectively be synonymous with the theme, except that a scripted * renderer may also be available. * * The renderer is intended to be per-GUI. */ class SimpleRenderer : IRenderer { BorderDimensions getBorder (BORDER_TYPES type) { BorderDimensions dims; with (BORDER_TYPES) with (dims) { if (type == WINDOW_TOTAL) { l = t = r = b = 20; } else if (type == WINDOW_RESIZE) { r = t = 5; l = b = 20; } } return dims; } int layoutSpacing () { return 4; } void drawWindow (int x, int y, int w, int h) { gl.setColor (0f, 0f, .7f); gl.drawBox (x,y, w,h); gl.setColor (0f, 0f, 1f); gl.drawBox (x+20,y+5, w-25,h-25); gl.setColor (.3f, .3f, .3f); gl.drawBox (x+20, y+20, w-40, h-40); } void drawWidgetBack (int x, int y, int w, int h) {} void drawButton (int x, int y, int w, int h, bool pushed) { if (pushed) gl.setColor (1f, 0f, 1f); else gl.setColor (.6f, 0f, .6f); gl.drawBox (x,y, w,h); } }