/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla.org. * * The Initial Developer of the Original Code is * Netscape Communications Corp. * Portions created by the Initial Developer are Copyright (C) 2003 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Daniel Glazman (glazman@netscape.com) (Original author) * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #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); };