view doodle/dia/page_layer.d @ 89:467febed7367

* Ignore excre * Some tentative work in grid_layer.d * Give the ScreenModel to all the layers. This needs refinement. * A stroke wouldn't hurt occasionally in cairo_renderer.d
author David Bryant <bagnose@gmail.com>
date Thu, 19 Aug 2010 00:19:42 +0930
parents cdd4fc728d94
children a274d16ab6ce
line wrap: on
line source

module doodle.dia.page_layer;

public {
    import doodle.dia.icanvas;
}

private {
}

class PageLayer : Layer, IPage {
    this(in string name = "Page") {
        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 Rectangle screenDamage, scope Renderer screenRenderer,
                       in Rectangle modelDamage, scope Renderer modelRenderer,
                       in ScreenModel screenModel) const {
        // Make the paper white, with a border

        modelRenderer.pushState; {
            modelRenderer.setColor(Color(0.0, 0.0, 0.0, 1.0));
            modelRenderer.drawRectangle(_pageGeometry, false);
        } modelRenderer.popState;

        modelRenderer.pushState; {
            modelRenderer.setColor(Color(1.0, 1.0, 1.0, 1.0));
            modelRenderer.drawRectangle(_pageGeometry, true);
        } modelRenderer.popState;
    }

    // IPage overrides:

    private {
        Rectangle _pageGeometry;
    }
}