Mercurial > projects > doodle
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; } }