diff options
Diffstat (limited to 'layout/style/nsDOMCSSRect.cpp')
-rw-r--r-- | layout/style/nsDOMCSSRect.cpp | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/layout/style/nsDOMCSSRect.cpp b/layout/style/nsDOMCSSRect.cpp new file mode 100644 index 000000000..7bd5dee71 --- /dev/null +++ b/layout/style/nsDOMCSSRect.cpp @@ -0,0 +1,77 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +/* DOM object representing rectangle values in DOM computed style */ + +#include "mozilla/dom/RectBinding.h" +#include "nsROCSSPrimitiveValue.h" +#include "nsDOMCSSRect.h" + +using namespace mozilla; + +nsDOMCSSRect::nsDOMCSSRect(nsROCSSPrimitiveValue* aTop, + nsROCSSPrimitiveValue* aRight, + nsROCSSPrimitiveValue* aBottom, + nsROCSSPrimitiveValue* aLeft) + : mTop(aTop), mRight(aRight), mBottom(aBottom), mLeft(aLeft) +{ +} + +nsDOMCSSRect::~nsDOMCSSRect(void) +{ +} + +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(nsDOMCSSRect) + NS_INTERFACE_MAP_ENTRY(nsIDOMRect) + NS_INTERFACE_MAP_ENTRY(nsISupports) + NS_WRAPPERCACHE_INTERFACE_MAP_ENTRY +NS_INTERFACE_MAP_END + +NS_IMPL_CYCLE_COLLECTING_ADDREF(nsDOMCSSRect) +NS_IMPL_CYCLE_COLLECTING_RELEASE(nsDOMCSSRect) + +NS_IMPL_CYCLE_COLLECTION_WRAPPERCACHE(nsDOMCSSRect, mTop, mBottom, mLeft, mRight) + +JSObject* +nsDOMCSSRect::WrapObject(JSContext* cx, JS::Handle<JSObject*> aGivenProto) +{ + return dom::RectBinding::Wrap(cx, this, aGivenProto); +} + +NS_IMETHODIMP +nsDOMCSSRect::GetTop(nsIDOMCSSPrimitiveValue** aTop) +{ + NS_ENSURE_TRUE(mTop, NS_ERROR_NOT_INITIALIZED); + *aTop = mTop; + NS_ADDREF(*aTop); + return NS_OK; +} + +NS_IMETHODIMP +nsDOMCSSRect::GetRight(nsIDOMCSSPrimitiveValue** aRight) +{ + NS_ENSURE_TRUE(mRight, NS_ERROR_NOT_INITIALIZED); + *aRight = mRight; + NS_ADDREF(*aRight); + return NS_OK; +} + +NS_IMETHODIMP +nsDOMCSSRect::GetBottom(nsIDOMCSSPrimitiveValue** aBottom) +{ + NS_ENSURE_TRUE(mBottom, NS_ERROR_NOT_INITIALIZED); + *aBottom = mBottom; + NS_ADDREF(*aBottom); + return NS_OK; +} + +NS_IMETHODIMP +nsDOMCSSRect::GetLeft(nsIDOMCSSPrimitiveValue** aLeft) +{ + NS_ENSURE_TRUE(mLeft, NS_ERROR_NOT_INITIALIZED); + *aLeft = mLeft; + NS_ADDREF(*aLeft); + return NS_OK; +} |