|
12 | 12 | #include <string> |
13 | 13 | #include <memory> |
14 | 14 |
|
15 | | -namespace ravel |
| 15 | +namespace minsky |
16 | 16 | { |
17 | | - template <class G> class CairoShimImpl; |
18 | | - |
19 | | - template <class G> |
20 | | - class CairoShim |
| 17 | + class ICairoShim |
21 | 18 | { |
22 | | - CairoShimImpl<G>* impl; |
23 | | - CairoShim(const CairoShim&)=delete; |
24 | | - void operator=(const CairoShim&)=delete; |
25 | 19 | public: |
26 | | - // template parameter G = cairo_t* or HDC |
27 | | - CairoShim(G); |
28 | | - ~CairoShim(); |
29 | | - |
30 | | - void moveTo(double x, double y); |
31 | | - void lineTo(double x, double y); |
32 | | - void relMoveTo(double x, double y); |
33 | | - void relLineTo(double x, double y); |
34 | | - void arc(double x, double y, double radius, double start, double end); |
| 20 | + virtual ~ICairoShim() = default; |
| 21 | + virtual void moveTo(double x, double y)=0; |
| 22 | + virtual void lineTo(double x, double y)=0; |
| 23 | + virtual void relMoveTo(double x, double y)=0; |
| 24 | + virtual void relLineTo(double x, double y)=0; |
| 25 | + virtual void arc(double x, double y, double radius, double start, double end)=0; |
35 | 26 |
|
36 | | - void setLineWidth(double); |
| 27 | + virtual void setLineWidth(double)=0; |
37 | 28 |
|
38 | 29 | // paths |
39 | | - void newPath(); |
40 | | - void closePath(); |
41 | | - void fill(); |
42 | | - void clip(); |
43 | | - void stroke(); |
44 | | - void strokePreserve(); |
| 30 | + virtual void newPath()=0; |
| 31 | + virtual void closePath()=0; |
| 32 | + virtual void fill()=0; |
| 33 | + virtual void clip()=0; |
| 34 | + virtual void stroke()=0; |
| 35 | + virtual void strokePreserve()=0; |
45 | 36 |
|
46 | 37 | // sources |
47 | | - void setSourceRGB(double r, double g, double b); |
48 | | - void setSourceRGBA(double r, double g, double b, double a); |
| 38 | + virtual void setSourceRGB(double r, double g, double b)=0; |
| 39 | + virtual void setSourceRGBA(double r, double g, double b, double a)=0; |
49 | 40 |
|
50 | 41 | // text. Argument is in UTF8 encoding |
51 | | - void showText(const std::string&); |
52 | | - void setTextExtents(const std::string&); |
53 | | - double textWidth() const; |
54 | | - double textHeight() const; |
| 42 | + virtual void showText(const std::string&)=0; |
| 43 | + virtual void setTextExtents(const std::string&)=0; |
| 44 | + virtual double textWidth() const=0; |
| 45 | + virtual double textHeight() const=0; |
55 | 46 |
|
56 | 47 | // matrix transformation |
57 | | - void identityMatrix(); |
58 | | - void translate(double x, double y); |
59 | | - void scale(double sx, double sy); |
60 | | - void rotate(double angle); ///< angle in radians |
| 48 | + virtual void identityMatrix()=0; |
| 49 | + virtual void translate(double x, double y)=0; |
| 50 | + virtual void scale(double sx, double sy)=0; |
| 51 | + virtual void rotate(double angle)=0; ///< angle in radians |
61 | 52 |
|
62 | 53 | // context manipulation |
63 | | - void save(); |
64 | | - void restore(); |
| 54 | + virtual void save()=0; |
| 55 | + virtual void restore()=0; |
65 | 56 |
|
66 | 57 | }; |
67 | 58 |
|
|
0 commit comments