diff options
author | Matt A. Tobin <mattatobin@localhost.localdomain> | 2018-02-02 04:16:08 -0500 |
---|---|---|
committer | Matt A. Tobin <mattatobin@localhost.localdomain> | 2018-02-02 04:16:08 -0500 |
commit | 5f8de423f190bbb79a62f804151bc24824fa32d8 (patch) | |
tree | 10027f336435511475e392454359edea8e25895d /gfx/src/nsIScriptableRegion.idl | |
parent | 49ee0794b5d912db1f95dce6eb52d781dc210db5 (diff) | |
download | uxp-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.gz |
Add m-esr52 at 52.6.0
Diffstat (limited to 'gfx/src/nsIScriptableRegion.idl')
-rw-r--r-- | gfx/src/nsIScriptableRegion.idl | 176 |
1 files changed, 176 insertions, 0 deletions
diff --git a/gfx/src/nsIScriptableRegion.idl b/gfx/src/nsIScriptableRegion.idl new file mode 100644 index 0000000000..1e32fdd1ba --- /dev/null +++ b/gfx/src/nsIScriptableRegion.idl @@ -0,0 +1,176 @@ +/* -*- Mode: IDL; 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/. */ + +#include "nsISupports.idl" + +%{C++ +#include "nsRegionFwd.h" +%} + +native nsIntRegion(nsIntRegion); + + +[scriptable, uuid(a5f44cc7-2820-489b-b817-ae8a08506ff6)] +interface nsIScriptableRegion : nsISupports +{ + void init ( ) ; + + /** + * copy operator equivalent that takes another region + * + * @param region to copy + * @return void + * + **/ + + void setToRegion ( in nsIScriptableRegion aRegion ); + + /** + * copy operator equivalent that takes a rect + * + * @param aX xoffset of rect to set region to + * @param aY yoffset of rect to set region to + * @param aWidth width of rect to set region to + * @param aHeight height of rect to set region to + * @return void + * + **/ + + void setToRect ( in long aX, in long aY, in long aWidth, in long aHeight ); + + /** + * destructively intersect another region with this one + * + * @param region to intersect + * @return void + * + **/ + + void intersectRegion ( in nsIScriptableRegion aRegion ) ; + + /** + * destructively intersect a rect with this region + * + * @param aX xoffset of rect to intersect with region + * @param aY yoffset of rect to intersect with region + * @param aWidth width of rect to intersect with region + * @param aHeight height of rect to intersect with region + * @return void + * + **/ + + void intersectRect ( in long aX, in long aY, in long aWidth, in long aHeight ) ; + + /** + * destructively union another region with this one + * + * @param region to union + * @return void + * + **/ + + void unionRegion ( in nsIScriptableRegion aRegion ) ; + + /** + * destructively union a rect with this region + * + * @param aX xoffset of rect to union with region + * @param aY yoffset of rect to union with region + * @param aWidth width of rect to union with region + * @param aHeight height of rect to union with region + * @return void + * + **/ + + void unionRect ( in long aX, in long aY, in long aWidth, in long aHeight ) ; + + /** + * destructively subtract another region with this one + * + * @param region to subtract + * @return void + * + **/ + + void subtractRegion ( in nsIScriptableRegion aRegion ) ; + + /** + * destructively subtract a rect from this region + * + * @param aX xoffset of rect to subtract with region + * @param aY yoffset of rect to subtract with region + * @param aWidth width of rect to subtract with region + * @param aHeight height of rect to subtract with region + * @return void + * + **/ + + void subtractRect ( in long aX, in long aY, in long aWidth, in long aHeight ) ; + + /** + * is this region empty? i.e. does it contain any pixels + * + * @param none + * @return returns whether the region is empty + * + **/ + + boolean isEmpty ( ) ; + + /** + * == operator equivalent i.e. do the regions contain exactly + * the same pixels + * + * @param region to compare + * @return whether the regions are identical + * + **/ + + boolean isEqualRegion ( in nsIScriptableRegion aRegion ) ; + + /** + * returns the bounding box of the region i.e. the smallest + * rectangle that completely contains the region. + * + * @param aX out parameter for xoffset of bounding rect for region + * @param aY out parameter for yoffset of bounding rect for region + * @param aWidth out parameter for width of bounding rect for region + * @param aHeight out parameter for height of bounding rect for region + * @return void + * + **/ + void getBoundingBox ( out long aX, out long aY, out long aWidth, out long aHeight ) ; + + /** + * offsets the region in x and y + * + * @param xoffset pixel offset in x + * @param yoffset pixel offset in y + * @return void + * + **/ + void offset ( in long aXOffset, in long aYOffset ) ; + + /** + * @return null if there are no rects, + * @return flat array of rects,ie [x1,y1,width1,height1,x2...]. + * The result will contain bogus data if values don't fit in 31 bit + **/ + [implicit_jscontext] jsval getRects(); + + /** + * does the region intersect the rectangle? + * + * @param rect to check for containment + * @return true if the region intersects the rect + * + **/ + + boolean containsRect ( in long aX, in long aY, in long aWidth, in long aHeight ) ; + + [noscript] readonly attribute nsIntRegion region; + +}; |