Bug 1700051: part 26) Correct typo in comment of `mozInlineSpellWordUtil::BuildSoftTe...
[gecko.git] / dom / canvas / BasicRenderingContext2D.h
blob963622198934a878d4e64a88305abbaed35affa6
1 /* This Source Code Form is subject to the terms of the Mozilla Public
2 * License, v. 2.0. If a copy of the MPL was not distributed with this file,
3 * You can obtain one at http://mozilla.org/MPL/2.0/. */
5 #ifndef BasicRenderingContext2D_h
6 #define BasicRenderingContext2D_h
8 #include "mozilla/dom/CanvasRenderingContext2DBinding.h"
9 #include "mozilla/dom/DOMMatrix.h"
11 namespace mozilla {
12 namespace dom {
14 class
15 HTMLImageElementOrSVGImageElementOrHTMLCanvasElementOrHTMLVideoElementOrImageBitmap;
16 typedef HTMLImageElementOrSVGImageElementOrHTMLCanvasElementOrHTMLVideoElementOrImageBitmap
17 CanvasImageSource;
20 * BasicRenderingContext2D
22 class BasicRenderingContext2D {
23 public:
25 // CanvasState
27 virtual void Save() = 0;
28 virtual void Restore() = 0;
31 // CanvasTransform
33 virtual void Scale(double aX, double aY, mozilla::ErrorResult& aError) = 0;
34 virtual void Rotate(double aAngle, mozilla::ErrorResult& aError) = 0;
35 virtual void Translate(double aX, double aY,
36 mozilla::ErrorResult& aError) = 0;
37 virtual void Transform(double aM11, double aM12, double aM21, double aM22,
38 double aDx, double aDy,
39 mozilla::ErrorResult& aError) = 0;
40 virtual already_AddRefed<DOMMatrix> GetTransform(
41 mozilla::ErrorResult& aError) = 0;
42 virtual void SetTransform(double aM11, double aM12, double aM21, double aM22,
43 double aDx, double aDy,
44 mozilla::ErrorResult& aError) = 0;
45 virtual void SetTransform(const DOMMatrix2DInit& aInit,
46 mozilla::ErrorResult& aError) = 0;
47 virtual void ResetTransform(mozilla::ErrorResult& aError) = 0;
50 // CanvasCompositing
52 virtual double GlobalAlpha() = 0;
53 virtual void SetGlobalAlpha(double aGlobalAlpha) = 0;
54 virtual void GetGlobalCompositeOperation(nsAString& aOp,
55 mozilla::ErrorResult& aError) = 0;
56 virtual void SetGlobalCompositeOperation(const nsAString& aOp,
57 mozilla::ErrorResult& aError) = 0;
60 // CanvasImageSmoothing
62 virtual bool ImageSmoothingEnabled() = 0;
63 virtual void SetImageSmoothingEnabled(bool aImageSmoothingEnabled) = 0;
66 // CanvasFillStrokeStyles
68 virtual void GetStrokeStyle(
69 OwningUTF8StringOrCanvasGradientOrCanvasPattern& aValue) = 0;
70 virtual void SetStrokeStyle(
71 const UTF8StringOrCanvasGradientOrCanvasPattern& aValue) = 0;
72 virtual void GetFillStyle(
73 OwningUTF8StringOrCanvasGradientOrCanvasPattern& aValue) = 0;
74 virtual void SetFillStyle(
75 const UTF8StringOrCanvasGradientOrCanvasPattern& aValue) = 0;
76 virtual already_AddRefed<CanvasGradient> CreateLinearGradient(double aX0,
77 double aY0,
78 double aX1,
79 double aY1) = 0;
80 virtual already_AddRefed<CanvasGradient> CreateRadialGradient(
81 double aX0, double aY0, double aR0, double aX1, double aY1, double aR1,
82 ErrorResult& aError) = 0;
83 virtual already_AddRefed<CanvasGradient> CreateConicGradient(double aAngle,
84 double aCx,
85 double aCy) = 0;
86 virtual already_AddRefed<CanvasPattern> CreatePattern(
87 const CanvasImageSource& aElement, const nsAString& aRepeat,
88 ErrorResult& aError) = 0;
90 // CanvasShadowStyles
92 virtual double ShadowOffsetX() = 0;
93 virtual void SetShadowOffsetX(double aShadowOffsetX) = 0;
94 virtual double ShadowOffsetY() = 0;
95 virtual void SetShadowOffsetY(double aShadowOffsetY) = 0;
96 virtual double ShadowBlur() = 0;
97 virtual void SetShadowBlur(double aShadowBlur) = 0;
98 virtual void GetShadowColor(nsACString& aShadowColor) = 0;
99 virtual void SetShadowColor(const nsACString& aShadowColor) = 0;
102 // CanvasRect
104 virtual void ClearRect(double aX, double aY, double aW, double aH) = 0;
105 virtual void FillRect(double aX, double aY, double aW, double aH) = 0;
106 virtual void StrokeRect(double aX, double aY, double aW, double aH) = 0;
109 // CanvasDrawImage
111 virtual void DrawImage(const CanvasImageSource& aImage, double aDx,
112 double aDy, mozilla::ErrorResult& aError) = 0;
113 virtual void DrawImage(const CanvasImageSource& aImage, double aDx,
114 double aDy, double aDw, double aDh,
115 mozilla::ErrorResult& aError) = 0;
116 virtual void DrawImage(const CanvasImageSource& aImage, double aSx,
117 double aSy, double aSw, double aSh, double aDx,
118 double aDy, double aDw, double aDh,
119 mozilla::ErrorResult& aError) = 0;
122 // CanvasPathDrawingStyles
124 virtual double LineWidth() = 0;
125 virtual void SetLineWidth(double aWidth) = 0;
126 virtual void GetLineCap(nsAString& aLinecapStyle) = 0;
127 virtual void SetLineCap(const nsAString& aLinecapStyle) = 0;
128 virtual void GetLineJoin(nsAString& aLinejoinStyle,
129 mozilla::ErrorResult& aError) = 0;
130 virtual void SetLineJoin(const nsAString& aLinejoinStyle) = 0;
131 virtual double MiterLimit() = 0;
132 virtual void SetMiterLimit(double aMiter) = 0;
133 virtual void SetLineDash(const Sequence<double>& aSegments,
134 mozilla::ErrorResult& aRv) = 0;
135 virtual void GetLineDash(nsTArray<double>& aSegments) const = 0;
136 virtual void SetLineDashOffset(double aOffset) = 0;
137 virtual double LineDashOffset() const = 0;
140 // CanvasPath
142 virtual void ClosePath() = 0;
143 virtual void MoveTo(double aX, double aY) = 0;
144 virtual void LineTo(double aX, double aY) = 0;
145 virtual void QuadraticCurveTo(double aCpx, double aCpy, double aX,
146 double aY) = 0;
147 virtual void BezierCurveTo(double aCp1x, double aCp1y, double aCp2x,
148 double aCp2y, double aX, double aY) = 0;
149 virtual void ArcTo(double aX1, double aY1, double aX2, double aY2,
150 double aRadius, mozilla::ErrorResult& aError) = 0;
151 virtual void Rect(double aX, double aY, double aW, double aH) = 0;
152 virtual void Arc(double aX, double aY, double aRadius, double aStartAngle,
153 double aEndAngle, bool aAnticlockwise,
154 mozilla::ErrorResult& aError) = 0;
155 virtual void Ellipse(double aX, double aY, double aRadiusX, double aRadiusY,
156 double aRotation, double aStartAngle, double aEndAngle,
157 bool aAnticlockwise, ErrorResult& aError) = 0;
160 } // namespace dom
161 } // namespace mozilla
163 #endif /* BasicRenderingContext2D_h */