2009-09-04 04:49:18 +00:00
|
|
|
/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
2012-05-21 11:12:37 +00:00
|
|
|
/* 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/. */
|
2009-09-04 04:49:18 +00:00
|
|
|
|
|
|
|
#ifndef NSPAINTREQUEST_H_
|
|
|
|
#define NSPAINTREQUEST_H_
|
|
|
|
|
|
|
|
#include "nsIDOMPaintRequest.h"
|
|
|
|
#include "nsIDOMPaintRequestList.h"
|
|
|
|
#include "nsPresContext.h"
|
2011-08-22 09:14:13 +00:00
|
|
|
#include "nsIDOMEvent.h"
|
|
|
|
#include "dombindings.h"
|
2012-06-19 02:30:09 +00:00
|
|
|
#include "mozilla/Attributes.h"
|
2009-09-04 04:49:18 +00:00
|
|
|
|
2012-06-19 02:30:09 +00:00
|
|
|
class nsPaintRequest MOZ_FINAL : public nsIDOMPaintRequest
|
2009-09-04 04:49:18 +00:00
|
|
|
{
|
|
|
|
public:
|
|
|
|
NS_DECL_ISUPPORTS
|
|
|
|
NS_DECL_NSIDOMPAINTREQUEST
|
|
|
|
|
|
|
|
nsPaintRequest() { mRequest.mFlags = 0; }
|
|
|
|
|
|
|
|
void SetRequest(const nsInvalidateRequestList::Request& aRequest)
|
|
|
|
{ mRequest = aRequest; }
|
|
|
|
|
|
|
|
private:
|
|
|
|
~nsPaintRequest() {}
|
|
|
|
|
|
|
|
nsInvalidateRequestList::Request mRequest;
|
|
|
|
};
|
|
|
|
|
2011-08-22 09:14:13 +00:00
|
|
|
class nsPaintRequestList MOZ_FINAL : public nsIDOMPaintRequestList,
|
|
|
|
public nsWrapperCache
|
2009-09-04 04:49:18 +00:00
|
|
|
{
|
|
|
|
public:
|
2011-08-22 09:14:13 +00:00
|
|
|
nsPaintRequestList(nsIDOMEvent *aParent) : mParent(aParent)
|
|
|
|
{
|
2012-03-16 15:44:09 +00:00
|
|
|
SetIsDOMBinding();
|
2011-08-22 09:14:13 +00:00
|
|
|
}
|
2009-09-04 04:49:18 +00:00
|
|
|
|
2011-08-22 09:14:13 +00:00
|
|
|
NS_DECL_CYCLE_COLLECTING_ISUPPORTS
|
|
|
|
NS_DECL_CYCLE_COLLECTION_SCRIPT_HOLDER_CLASS(nsPaintRequestList)
|
2009-09-04 04:49:18 +00:00
|
|
|
NS_DECL_NSIDOMPAINTREQUESTLIST
|
|
|
|
|
2012-03-14 15:25:40 +00:00
|
|
|
virtual JSObject* WrapObject(JSContext *cx, JSObject *scope,
|
2011-08-22 09:14:13 +00:00
|
|
|
bool *triedToWrap)
|
|
|
|
{
|
2012-05-22 13:46:20 +00:00
|
|
|
return mozilla::dom::oldproxybindings::PaintRequestList::create(cx, scope, this,
|
2011-08-22 09:14:13 +00:00
|
|
|
triedToWrap);
|
|
|
|
}
|
2009-09-04 04:49:18 +00:00
|
|
|
|
2011-08-22 09:14:13 +00:00
|
|
|
nsISupports* GetParentObject()
|
2009-09-04 04:49:18 +00:00
|
|
|
{
|
2011-08-22 09:14:13 +00:00
|
|
|
return mParent;
|
2009-09-04 04:49:18 +00:00
|
|
|
}
|
|
|
|
|
2011-08-22 09:14:13 +00:00
|
|
|
void Append(nsIDOMPaintRequest* aElement) { mArray.AppendObject(aElement); }
|
|
|
|
|
2009-09-04 04:49:18 +00:00
|
|
|
static nsPaintRequestList* FromSupports(nsISupports* aSupports)
|
|
|
|
{
|
|
|
|
#ifdef DEBUG
|
|
|
|
{
|
|
|
|
nsCOMPtr<nsIDOMPaintRequestList> list_qi = do_QueryInterface(aSupports);
|
|
|
|
|
|
|
|
// If this assertion fires the QI implementation for the object in
|
|
|
|
// question doesn't use the nsIDOMClientRectList pointer as the nsISupports
|
|
|
|
// pointer. That must be fixed, or we'll crash...
|
|
|
|
NS_ASSERTION(list_qi == static_cast<nsIDOMPaintRequestList*>(aSupports),
|
|
|
|
"Uh, fix QI!");
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
|
|
|
return static_cast<nsPaintRequestList*>(aSupports);
|
|
|
|
}
|
|
|
|
|
|
|
|
private:
|
|
|
|
~nsPaintRequestList() {}
|
|
|
|
|
|
|
|
nsCOMArray<nsIDOMPaintRequest> mArray;
|
2011-08-22 09:14:13 +00:00
|
|
|
nsCOMPtr<nsIDOMEvent> mParent;
|
2009-09-04 04:49:18 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
#endif /*NSPAINTREQUEST_H_*/
|