/* -*- 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" interface nsIHTMLObjectResizeListener; [scriptable, uuid(8b396020-69d3-451f-80c1-1a96a7da25a9)] interface nsIHTMLObjectResizer : nsISupports { %{C++ typedef short EResizerLocation; %} const short eTopLeft = 0; const short eTop = 1; const short eTopRight = 2; const short eLeft = 3; const short eRight = 4; const short eBottomLeft = 5; const short eBottom = 6; const short eBottomRight = 7; /** * the element currently displaying resizers */ readonly attribute nsIDOMElement resizedObject; /** * a boolean indicating if object resizing is enabled in the editor */ attribute boolean objectResizingEnabled; /** * Shows active resizers around an element's frame * @param aResizedElement [IN] a DOM Element */ void showResizers(in nsIDOMElement aResizedElement); /** * Hide resizers if they are visible */ void hideResizers(); /** * Refresh visible resizers */ void refreshResizers(); /** * event callback when a mouse button is pressed * @param aX [IN] horizontal position of the pointer * @param aY [IN] vertical position of the pointer * @param aTarget [IN] the element triggering the event * @param aMouseEvent [IN] the event */ void mouseDown(in long aX, in long aY, in nsIDOMElement aTarget, in nsIDOMEvent aMouseEvent); /** * event callback when a mouse button is released * @param aX [IN] horizontal position of the pointer * @param aY [IN] vertical position of the pointer * @param aTarget [IN] the element triggering the event */ void mouseUp(in long aX, in long aY, in nsIDOMElement aTarget); /** * event callback when the mouse pointer is moved * @param aMouseEvent [IN] the event */ void mouseMove(in nsIDOMEvent aMouseEvent); /* Event Listeners */ /** * Creates a resize listener that can be used to get notifications * that the user started to resize an object or finalized such an operation * @param aListener [IN] an instance of nsIHTMLObjectResizeListener */ void addObjectResizeEventListener(in nsIHTMLObjectResizeListener aListener); /** * Deletes a resize listener * @param aListener [IN] an instance of nsIHTMLObjectResizeListener */ void removeObjectResizeEventListener(in nsIHTMLObjectResizeListener aListener); };