view page_layer.d @ 17:c643c04e3f5e

Checkpoint
author David Bryant <daveb@acres.com.au>
date Mon, 13 Jul 2009 16:46:21 +0930
parents 9e63308b749c
children df8d81d9f499
line wrap: on
line source

module page_layer;

private {
    import cairo_support;
}

public {
    import icanvas;
}

interface Page {
}

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

    override Rectangle bounds() const {
        return mPageGeometry;
    }

    override void draw(const Viewport viewport, in Rectangle damage,
                       Context model_cr, Context pixel_cr) const {
        // Make the paper white, with a border

        model_cr.setSourceRgba(1.0, 0.5, 1.0, 0.5);
        rectangle(model_cr, mPageGeometry);
        model_cr.fill();

        model_cr.setSourceRgba(0.3, 0.0, 0.0, 0.5);
        rectangle(model_cr, mPageGeometry);
        model_cr.stroke();

        /*
        pixel_cr.setSourceRgba(1.0, 1.0, 0.5, 0.4);
        rectangle(pixel_cr, viewport.model_to_pixel(mPageGeometry));
        pixel_cr.fill();

        pixel_cr.setSourceRgba(0.0, 0.3, 0.0, 0.4);
        rectangle(pixel_cr, viewport.model_to_pixel(mPageGeometry));
        //rectangle(pixel_cr, viewport.model_to_pixel(Rectangle(mPageGeometry.position, mPageGeometry.size / 2.0)));
        pixel_cr.stroke();
        */
    }

    private {
        Rectangle mPageGeometry;
    }
}