From 5f8de423f190bbb79a62f804151bc24824fa32d8 Mon Sep 17 00:00:00 2001 From: "Matt A. Tobin" Date: Fri, 2 Feb 2018 04:16:08 -0500 Subject: Add m-esr52 at 52.6.0 --- editor/nsIHTMLAbsPosEditor.idl | 132 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 132 insertions(+) create mode 100644 editor/nsIHTMLAbsPosEditor.idl (limited to 'editor/nsIHTMLAbsPosEditor.idl') diff --git a/editor/nsIHTMLAbsPosEditor.idl b/editor/nsIHTMLAbsPosEditor.idl new file mode 100644 index 000000000..7ecffac60 --- /dev/null +++ b/editor/nsIHTMLAbsPosEditor.idl @@ -0,0 +1,132 @@ +/* -*- 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(); + +}; + -- cgit v1.2.3