Line data Source code
1 : /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 : /* vim: set ts=8 sts=2 et sw=2 tw=80: */
3 : /* This Source Code Form is subject to the terms of the Mozilla Public
4 : * License, v. 2.0. If a copy of the MPL was not distributed with this
5 : * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
6 :
7 : #ifndef mozilla_dom_SVGRect_h
8 : #define mozilla_dom_SVGRect_h
9 :
10 : #include "mozilla/dom/SVGIRect.h"
11 : #include "mozilla/gfx/Rect.h"
12 : #include "nsSVGElement.h"
13 :
14 : ////////////////////////////////////////////////////////////////////////
15 : // SVGRect class
16 :
17 : namespace mozilla {
18 : namespace dom {
19 :
20 : class SVGRect final : public SVGIRect
21 : {
22 : public:
23 : explicit SVGRect(nsIContent* aParent, float x=0.0f, float y=0.0f, float w=0.0f,
24 : float h=0.0f);
25 :
26 : NS_DECL_CYCLE_COLLECTING_ISUPPORTS
27 0 : NS_DECL_CYCLE_COLLECTION_SCRIPT_HOLDER_CLASS(SVGRect)
28 :
29 : // WebIDL
30 0 : virtual float X() const override final
31 : {
32 0 : return mX;
33 : }
34 :
35 0 : virtual void SetX(float aX, ErrorResult& aRv) final
36 : {
37 0 : mX = aX;
38 0 : }
39 :
40 0 : virtual float Y() const override final
41 : {
42 0 : return mY;
43 : }
44 :
45 0 : virtual void SetY(float aY, ErrorResult& aRv) final
46 : {
47 0 : mY = aY;
48 0 : }
49 :
50 0 : virtual float Width() const override final
51 : {
52 0 : return mWidth;
53 : }
54 :
55 0 : virtual void SetWidth(float aWidth, ErrorResult& aRv) final
56 : {
57 0 : mWidth = aWidth;
58 0 : }
59 :
60 0 : virtual float Height() const override final
61 : {
62 0 : return mHeight;
63 : }
64 :
65 0 : virtual void SetHeight(float aHeight, ErrorResult& aRv) final
66 : {
67 0 : mHeight = aHeight;
68 0 : }
69 :
70 0 : virtual nsIContent* GetParentObject() const override
71 : {
72 0 : return mParent;
73 : }
74 :
75 : protected:
76 0 : ~SVGRect() {}
77 :
78 : nsCOMPtr<nsIContent> mParent;
79 : float mX, mY, mWidth, mHeight;
80 : };
81 :
82 : } // namespace dom
83 : } // namespace mozilla
84 :
85 : already_AddRefed<mozilla::dom::SVGRect>
86 : NS_NewSVGRect(nsIContent* aParent, float x=0.0f, float y=0.0f,
87 : float width=0.0f, float height=0.0f);
88 :
89 : already_AddRefed<mozilla::dom::SVGRect>
90 : NS_NewSVGRect(nsIContent* aParent, const mozilla::gfx::Rect& rect);
91 :
92 : #endif //mozilla_dom_SVGRect_h
|