10
|
1 import icanvas;
|
|
2 import tk.geometry;
|
|
3 import cairo.Context;
|
|
4 import cairo_support;
|
|
5
|
|
6 interface Page {
|
|
7 }
|
|
8
|
|
9 class PageLayer : Layer, Page {
|
12
|
10 this(in string name) {
|
|
11 super(name);
|
11
|
12 mPageGeometry = Rectangle(Point.DEFAULT,
|
|
13 Vector(210.0, 297.0));
|
|
14 }
|
|
15
|
|
16 override Rectangle bounds() const {
|
|
17 return mPageGeometry;
|
|
18 }
|
|
19
|
12
|
20 override void draw(const Viewport viewport, in Rectangle damage,
|
|
21 Context model_cr, Context screen_cr) const {
|
10
|
22 // Make the paper white, with a border
|
|
23
|
12
|
24 /*
|
|
25 model_cr.setSourceRgba(1.0, 1.0, 1.0, 1.0);
|
|
26 rectangle(model_cr, mPageGeometry);
|
|
27 model_cr.fill();
|
10
|
28
|
12
|
29 model_cr.setSourceRgba(0.0, 0.0, 0.0, 1.0);
|
|
30 rectangle(model_cr, mPageGeometry);
|
|
31 rectangle(model_cr, Rectangle(mPageGeometry.position, mPageGeometry.size / 2.0));
|
|
32 model_cr.stroke();
|
|
33 */
|
|
34
|
|
35 screen_cr.setSourceRgba(1.0, 1.0, 1.0, 1.0);
|
|
36 rectangle(screen_cr, viewport.model_to_screen(mPageGeometry));
|
|
37 screen_cr.fill();
|
|
38
|
|
39 screen_cr.setSourceRgba(0.0, 0.0, 0.0, 1.0);
|
|
40 rectangle(screen_cr, viewport.model_to_screen(mPageGeometry));
|
|
41 rectangle(screen_cr, viewport.model_to_screen(Rectangle(mPageGeometry.position, mPageGeometry.size / 2.0)));
|
|
42 screen_cr.stroke();
|
10
|
43 }
|
|
44
|
|
45 private {
|
11
|
46 Rectangle mPageGeometry;
|
10
|
47 }
|
|
48 }
|