gecko-dev/editor/nsIHTMLObjectResizer.idl
Masayuki Nakano a2333fc4bb Bug 1060051 - Make editor related interfaces builtin classes if it's possible r=Ehsan,smaug
If we make nsIEditor a builtin class, that means that its instance can be only TextEditor or HTMLEditor.  Then, users of nsIEditor can use concrete classes such as EditorBase, TextEditor or HTMLEditor instead.  Then, the users can reduce unnecessary QI and a lot of virtual calls if we'll create non-virtual methods.

So, let's make editor related interfaces builtin classes.

MozReview-Commit-ID: 93WfsSDuJiJ

--HG--
extra : rebase_source : 39151eb4ffaaf195fec57234ea84c9f4066c58d1
2017-08-04 13:57:56 +09:00

77 lines
2.1 KiB
Plaintext

/* -*- 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, builtinclass, 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);
};