summaryrefslogtreecommitdiffstats
path: root/editor/nsIHTMLAbsPosEditor.idl
diff options
context:
space:
mode:
authorMatt A. Tobin <mattatobin@localhost.localdomain>2018-02-02 04:16:08 -0500
committerMatt A. Tobin <mattatobin@localhost.localdomain>2018-02-02 04:16:08 -0500
commit5f8de423f190bbb79a62f804151bc24824fa32d8 (patch)
tree10027f336435511475e392454359edea8e25895d /editor/nsIHTMLAbsPosEditor.idl
parent49ee0794b5d912db1f95dce6eb52d781dc210db5 (diff)
downloadUXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.gz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.lz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.xz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.zip
Add m-esr52 at 52.6.0
Diffstat (limited to 'editor/nsIHTMLAbsPosEditor.idl')
-rw-r--r--editor/nsIHTMLAbsPosEditor.idl132
1 files changed, 132 insertions, 0 deletions
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();
+
+};
+