view mde/gui/content/Services.d @ 61:7cab2af4ba21

A little bit of progress on the content handling system (relevent code is likely to be revised). Also some changes to debug statements, in particular a new drawGlyphCache debug version.
author Diggory Hardy <diggory.hardy@gmail.com>
date Wed, 25 Jun 2008 17:25:48 +0100
parents
children
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/>. */

// NOTE: This module is currently unused and untested.
// FIXME: write unittests

/** Content services.
 *
 * Services act on a content, potentially modifying it. They have the form:
 * ---
 * bool service (ref Content c);
 * ---
 * where c is the content acted on, and the return value is true if the content was changed (useful
 * to know whether caches need updating or not).
 */
module mde.gui.content.Services;

bool copy (ref Content c) {
    // Put a duplicate on the clipboard, so later changes don't affect what's on the clipboard.
    clipboard = c.dup;
    return false;
}

bool paste (ref ContentText c) {
    if (clipboard is null)
        return false;	// no item on clipboard, so don't do anything
    c = clipboard.toText;
    return true;
}

bool paste (ref ContentInt c) {
    if (clipboard is null)
        return false;	// no item on clipboard, so don't do anything
    c = clipboard.toInt;
    return true;
}

bool link (ref ContentText c) {
    if (clipboard is null)
        return false;	// no item on clipboard, so don't do anything
    c = clipboard;
    return true;
}

Content clipboard;