view page_layer.d @ 13:f0ade1b49fe7

Checkpoint
author "David Bryant <bagnose@gmail.com>"
date Sun, 12 Jul 2009 01:04:35 +0930
parents a093c4fbdd43
children 9e63308b749c
line wrap: on
line source

import icanvas;
import tk.geometry;
import cairo.Context;
import cairo_support;

interface Page {
}

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

    override Rectangle bounds() const {
        return mPageGeometry;
    }

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

        /*
        model_cr.setSourceRgba(1.0, 1.0, 1.0, 1.0);
        rectangle(model_cr, mPageGeometry);
        model_cr.fill();

        model_cr.setSourceRgba(0.0, 0.0, 0.0, 1.0);
        rectangle(model_cr, mPageGeometry);
        rectangle(model_cr, Rectangle(mPageGeometry.position, mPageGeometry.size / 2.0));
        model_cr.stroke();
        */

        screen_cr.setSourceRgba(1.0, 1.0, 1.0, 1.0);
        rectangle(screen_cr, viewport.model_to_screen(mPageGeometry));
        screen_cr.fill();

        screen_cr.setSourceRgba(0.0, 0.0, 0.0, 1.0);
        rectangle(screen_cr, viewport.model_to_screen(mPageGeometry));
        rectangle(screen_cr, viewport.model_to_screen(Rectangle(mPageGeometry.position, mPageGeometry.size / 2.0)));
        screen_cr.stroke();
    }

    private {
        Rectangle mPageGeometry;
    }
}