annotate page_layer.d @ 11:fb571a3b1f0d

Checkpoint
author "David Bryant <bagnose@gmail.com>"
date Sat, 11 Jul 2009 23:32:22 +0930
parents 71ca82e0eb76
children a093c4fbdd43
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
10
71ca82e0eb76 Checkpoint
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
1 import icanvas;
71ca82e0eb76 Checkpoint
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
2 import tk.geometry;
71ca82e0eb76 Checkpoint
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
3 import cairo.Context;
71ca82e0eb76 Checkpoint
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
4 import cairo_support;
71ca82e0eb76 Checkpoint
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
5
71ca82e0eb76 Checkpoint
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
6 interface Page {
71ca82e0eb76 Checkpoint
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
7 }
71ca82e0eb76 Checkpoint
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
8
71ca82e0eb76 Checkpoint
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
9 class PageLayer : Layer, Page {
11
fb571a3b1f0d Checkpoint
"David Bryant <bagnose@gmail.com>"
parents: 10
diff changeset
10 this() {
fb571a3b1f0d Checkpoint
"David Bryant <bagnose@gmail.com>"
parents: 10
diff changeset
11 mPageGeometry = Rectangle(Point.DEFAULT,
fb571a3b1f0d Checkpoint
"David Bryant <bagnose@gmail.com>"
parents: 10
diff changeset
12 Vector(210.0, 297.0));
fb571a3b1f0d Checkpoint
"David Bryant <bagnose@gmail.com>"
parents: 10
diff changeset
13 }
fb571a3b1f0d Checkpoint
"David Bryant <bagnose@gmail.com>"
parents: 10
diff changeset
14
fb571a3b1f0d Checkpoint
"David Bryant <bagnose@gmail.com>"
parents: 10
diff changeset
15 override Rectangle bounds() const {
fb571a3b1f0d Checkpoint
"David Bryant <bagnose@gmail.com>"
parents: 10
diff changeset
16 return mPageGeometry;
fb571a3b1f0d Checkpoint
"David Bryant <bagnose@gmail.com>"
parents: 10
diff changeset
17 }
fb571a3b1f0d Checkpoint
"David Bryant <bagnose@gmail.com>"
parents: 10
diff changeset
18
fb571a3b1f0d Checkpoint
"David Bryant <bagnose@gmail.com>"
parents: 10
diff changeset
19 override void draw(const Viewport viewport, in Rectangle damage, Context cr) const {
10
71ca82e0eb76 Checkpoint
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
20 // Make the paper white, with a border
71ca82e0eb76 Checkpoint
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
21
71ca82e0eb76 Checkpoint
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
22 cr.setSourceRgba(1.0, 1.0, 1.0, 1.0);
11
fb571a3b1f0d Checkpoint
"David Bryant <bagnose@gmail.com>"
parents: 10
diff changeset
23 rectangle(cr, viewport.model_to_screen(mPageGeometry));
10
71ca82e0eb76 Checkpoint
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
24 cr.fill();
71ca82e0eb76 Checkpoint
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
25
71ca82e0eb76 Checkpoint
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
26 cr.setSourceRgba(0.0, 0.0, 0.0, 1.0);
11
fb571a3b1f0d Checkpoint
"David Bryant <bagnose@gmail.com>"
parents: 10
diff changeset
27 rectangle(cr, viewport.model_to_screen(mPageGeometry));
10
71ca82e0eb76 Checkpoint
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
28 cr.stroke();
71ca82e0eb76 Checkpoint
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
29 }
71ca82e0eb76 Checkpoint
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
30
71ca82e0eb76 Checkpoint
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
31 private {
11
fb571a3b1f0d Checkpoint
"David Bryant <bagnose@gmail.com>"
parents: 10
diff changeset
32 Rectangle mPageGeometry;
10
71ca82e0eb76 Checkpoint
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
33 }
71ca82e0eb76 Checkpoint
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
34 }