view mde/gui/exception.d @ 103:42e241e7be3e

ContentList content type; getting content items/lists from Options generically via content.Items, and a new addContent widget function. Several improvements to generic handling of content. New button-with-text widget. Some tidy-up. Some name changes, to increase uniformity. Bug-fix: floating widgets of fixed size could previously be made larger than intended from config dimdata.
author Diggory Hardy <diggory.hardy@gmail.com>
date Tue, 25 Nov 2008 18:01:44 +0000
parents 4d5d53e4f881
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/>. */

/// All GUI Exception classes
module mde.gui.exception;

import mde.exception;

class GuiException : mdeException
{
    char[] getSymbol () {
        return super.getSymbol ~ ".gui";
    }
    
    this (char[] msg) {
        super(msg);
    }
}

/// Thrown when createWidget or a Widget class's this() is called with invalid data.
class WidgetDataException : GuiException
{
    this () {		// Other CTOR should be used by classes
        super ("Bad widget data");
    }
    this (Object o) {	// Default, by Widget class's this / WDCheck
	super ("Bad widget data for "~o.classinfo.name);
    }
}

class ContentException : GuiException
{
    char[] getSymbol () {
        return super.getSymbol ~ ".content";
    }
    this () {
        super ("Unexpected content type");
    }
    this (char[] msg) {
        super (msg);
    }
}

/// Thrown when getting a content item fails
class ContentItemException : GuiException {
    this (char[] msg) {
	super ("Bad content item specifier: "~msg);
    }
}