annotate doodle/tk/drawing.d @ 78:024a5608087f

Meh
author "David Bryant <bagnose@gmail.com>"
date Sun, 15 Aug 2010 15:19:14 +0930
parents 78bc2046256e
children 535bae7a7305
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
73
6f2525e170f2 Cairo/OpenGL checkpoint
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
1 module doodle.tk.drawing;
6f2525e170f2 Cairo/OpenGL checkpoint
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
2
6f2525e170f2 Cairo/OpenGL checkpoint
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
3 public {
6f2525e170f2 Cairo/OpenGL checkpoint
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
4 import doodle.tk.geometry;
6f2525e170f2 Cairo/OpenGL checkpoint
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
5 }
6f2525e170f2 Cairo/OpenGL checkpoint
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
6
76
78bc2046256e And some more
"David Bryant <bagnose@gmail.com>"
parents: 73
diff changeset
7 interface Drawable {
73
6f2525e170f2 Cairo/OpenGL checkpoint
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
8 enum LineStyle {
6f2525e170f2 Cairo/OpenGL checkpoint
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
9 SOLID,
6f2525e170f2 Cairo/OpenGL checkpoint
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
10 DASHED,
6f2525e170f2 Cairo/OpenGL checkpoint
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
11 DOTTED
6f2525e170f2 Cairo/OpenGL checkpoint
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
12 }
6f2525e170f2 Cairo/OpenGL checkpoint
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
13
6f2525e170f2 Cairo/OpenGL checkpoint
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
14 void setLineStyle(LineStyle style);
6f2525e170f2 Cairo/OpenGL checkpoint
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
15 void setLineThickness(in double thickness);
6f2525e170f2 Cairo/OpenGL checkpoint
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
16 //void setLineColor(in Color color);
6f2525e170f2 Cairo/OpenGL checkpoint
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
17 //void setFillColor(in Color color);
6f2525e170f2 Cairo/OpenGL checkpoint
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
18
6f2525e170f2 Cairo/OpenGL checkpoint
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
19 void drawRectangle(in Rectangle rectangle, bool fill);
6f2525e170f2 Cairo/OpenGL checkpoint
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
20 void drawEllipse(in Rectangle rectangle, bool fill);
6f2525e170f2 Cairo/OpenGL checkpoint
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
21 void drawSegment(in Segment segment);
6f2525e170f2 Cairo/OpenGL checkpoint
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
22 void drawHLine(in double y0, in double x0, in double x1);
6f2525e170f2 Cairo/OpenGL checkpoint
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
23 void drawVLine(in double x0, in double y0, in double y1);
6f2525e170f2 Cairo/OpenGL checkpoint
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
24 void drawPoly(in Point[] points, bool fill);
6f2525e170f2 Cairo/OpenGL checkpoint
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
25
6f2525e170f2 Cairo/OpenGL checkpoint
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
26 void pushState(); // Copies all of current state
6f2525e170f2 Cairo/OpenGL checkpoint
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
27 void popState(); // Restores all of previous state
6f2525e170f2 Cairo/OpenGL checkpoint
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
28
6f2525e170f2 Cairo/OpenGL checkpoint
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
29 void translate(in Vector v);
6f2525e170f2 Cairo/OpenGL checkpoint
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
30 void translate(in Point p);
6f2525e170f2 Cairo/OpenGL checkpoint
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
31 void scale(in Vector v);
6f2525e170f2 Cairo/OpenGL checkpoint
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
32 void zoom(in double z);
6f2525e170f2 Cairo/OpenGL checkpoint
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
33
6f2525e170f2 Cairo/OpenGL checkpoint
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
34 //void setFontFace;
6f2525e170f2 Cairo/OpenGL checkpoint
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
35 //void setFontSize;
6f2525e170f2 Cairo/OpenGL checkpoint
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
36 void drawText(in string text);
6f2525e170f2 Cairo/OpenGL checkpoint
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
37
78
"David Bryant <bagnose@gmail.com>"
parents: 76
diff changeset
38 void measureText(in string text, out Rectangle logicalBounds, out Rectangle totalBounds);
"David Bryant <bagnose@gmail.com>"
parents: 76
diff changeset
39
73
6f2525e170f2 Cairo/OpenGL checkpoint
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
40 // How to fit fonts, metrics, etc in here?
78
"David Bryant <bagnose@gmail.com>"
parents: 76
diff changeset
41 // Initially let's just support one font
73
6f2525e170f2 Cairo/OpenGL checkpoint
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
42 }