view doodle/dia/page_layer.d @ 57:9960c4fbd0dd

I is for Interface
author "David Bryant <bagnose@gmail.com>"
date Sun, 08 Aug 2010 22:01:54 +0930
parents 1b4c9ba58673
children c63719604adb
line wrap: on
line source

module doodle.dia.page_layer;

public {
    import doodle.dia.icanvas;
}

private {
    import doodle.cairo.routines;
}

class PageLayer : Layer, IPage {
    this(in string name) {
        super(name);
        _pageGeometry = Rectangle(Point.DEFAULT, Vector(210.0, 297.0));
        //_pageGeometry = Rectangle(Point.DEFAULT, Vector(100.0, 100.0));
    }

    // Layer overrides:

    override Rectangle bounds() const {
        return _pageGeometry;
    }

    override void draw(in IViewport viewport,
                       in Rectangle pixelDamage, scope Context pixelCr,
                       in Rectangle modelDamage, scope Context modelCr) const {
        // Make the paper white, with a border

        modelCr.save; {
            modelCr.setSourceRgba(0.0, 0.0, 0.0, 1.0);
            rectangle(modelCr, _pageGeometry);
            modelCr.stroke;
        } modelCr.restore;

        modelCr.save; {
            modelCr.setSourceRgba(1.0, 1.0, 1.0, 1.0);
            rectangle(modelCr, _pageGeometry);
            modelCr.fill;
        } modelCr.restore;
    }

    // IPage overrides:

    private {
        Rectangle _pageGeometry;
    }
}