view doodle/import/model.d @ 28:1754cb773d41

Part-way through getting to compile with configure/builder.
author Graham St Jack <graham.stjack@internode.on.net>
date Sun, 02 Aug 2009 16:27:21 +0930
parents import/model.d@e907d2c54ec3
children 960b408d3ac5
line wrap: on
line source

module doodle.interaction.model;


final class Manipulator {
}

abstract class Selector {
    this(Fig selected) {
        _selected = selected;
    }

    Fig selected() { return _selected; }

    abstract void draw(Screen screen);

    private {
        Fig _selected;
    }
}

abstract class Fig {
    DiagramElement element() { return _element; }

    abstract void draw(Canvas canvas);

    abstract Selector create_selector();

    private {
        DiagramElement _element;
    }
}

abstract class NetFig : Fig {
    GraphElement element() { return _element; }

    private {
        GraphElement _element;
    }
}

abstract class EdgeFig : NetFig {
    GraphEdge element() { return _element; }

    private {
        GraphEdge _element;
    }
}

abstract class NodeFig : NetFig {
    GraphNode element() { return _element; }

    private {
        GraphNode _element;
    }
}