mirror of https://github.com/roytam1/UXP.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
132 lines
4.0 KiB
132 lines
4.0 KiB
/* -*- 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/. */ |
|
|
|
#include "nsISupports.idl" |
|
#include "domstubs.idl" |
|
|
|
[scriptable, uuid(91375f52-20e6-4757-9835-eb04fabe5498)] |
|
|
|
interface nsIHTMLAbsPosEditor : nsISupports |
|
{ |
|
/** |
|
* true if the selection container is absolutely positioned |
|
*/ |
|
readonly attribute boolean selectionContainerAbsolutelyPositioned; |
|
|
|
/** |
|
* this contains the absolutely positioned element currently edited |
|
* or null |
|
*/ |
|
readonly attribute nsIDOMElement positionedElement; |
|
|
|
/** |
|
* true if Absolute Positioning handling is enabled in the editor |
|
*/ |
|
attribute boolean absolutePositioningEnabled; |
|
|
|
|
|
/* Utility methods */ |
|
|
|
/** |
|
* true if Snap To Grid is enabled in the editor. |
|
*/ |
|
attribute boolean snapToGridEnabled; |
|
|
|
/** |
|
* sets the grid size in pixels. |
|
* @param aSizeInPixels [IN] the size of the grid in pixels |
|
*/ |
|
attribute unsigned long gridSize; |
|
|
|
/* Selection-based methods */ |
|
|
|
/** |
|
* returns the deepest absolutely positioned container of the selection |
|
* if it exists or null. |
|
*/ |
|
readonly attribute nsIDOMElement absolutelyPositionedSelectionContainer; |
|
|
|
/** |
|
* extracts the selection from the normal flow of the document and |
|
* positions it. |
|
* @param aEnabled [IN] true to absolutely position the selection, |
|
* false to put it back in the normal flow |
|
*/ |
|
void absolutePositionSelection(in boolean aEnabled); |
|
|
|
/** |
|
* adds aChange to the z-index of the currently positioned element. |
|
* @param aChange [IN] relative change to apply to current z-index |
|
*/ |
|
void relativeChangeZIndex(in long aChange); |
|
|
|
/* Element-based methods */ |
|
|
|
/** |
|
* extracts an element from the normal flow of the document and |
|
* positions it, and puts it back in the normal flow. |
|
* @param aElement [IN] the element |
|
* @param aEnabled [IN] true to absolutely position the element, |
|
* false to put it back in the normal flow |
|
*/ |
|
void absolutelyPositionElement(in nsIDOMElement aElement, |
|
in boolean aEnabled); |
|
|
|
/** |
|
* sets the position of an element; warning it does NOT check if the |
|
* element is already positioned or not and that's on purpose. |
|
* @param aElement [IN] the element |
|
* @param aX [IN] the x position in pixels. |
|
* @param aY [IN] the y position in pixels. |
|
*/ |
|
void setElementPosition(in nsIDOMElement aElement, in long aX, in long aY); |
|
|
|
/** |
|
* returns the absolute z-index of a positioned element. Never returns 'auto'. |
|
* @return the z-index of the element |
|
* @param aElement [IN] the element. |
|
*/ |
|
long getElementZIndex(in nsIDOMElement aElement); |
|
|
|
/** |
|
* sets the z-index of an element. |
|
* @param aElement [IN] the element |
|
* @param aZorder [IN] the z-index |
|
*/ |
|
void setElementZIndex(in nsIDOMElement aElement, in long aZorder); |
|
|
|
/** |
|
* adds aChange to the z-index of an arbitrary element. |
|
* @return the new z-index of the element |
|
* @param aElement [IN] the element |
|
* @param aChange [IN] relative change to apply to current z-index of |
|
* the element |
|
*/ |
|
long relativeChangeElementZIndex(in nsIDOMElement aElement, in long aChange); |
|
|
|
/* Other */ |
|
|
|
/** |
|
* shows a grabber attached to an arbitrary element. The grabber is an image |
|
* positioned on the left hand side of the top border of the element. Dragging |
|
* and dropping it allows to change the element's absolute position in the |
|
* document. See chrome://editor/content/images/grabber.gif |
|
* @param aElement [IN] the element |
|
*/ |
|
void showGrabberOnElement(in nsIDOMElement aElement); |
|
|
|
/** |
|
* hide the grabber if it shown. |
|
*/ |
|
void hideGrabber(); |
|
|
|
/** |
|
* refreshes the grabber if it shown, possibly updating its position or |
|
* even hiding it. |
|
*/ |
|
void refreshGrabber(); |
|
|
|
}; |
|
|
|
|