editor/nsIHTMLObjectResizer.idl
author Mike Hommey <mh+mozilla@glandium.org>
Wed, 05 Apr 2017 13:48:52 +0900
changeset 402137 7ad4be04d16e0d86508c15c104f9686f2493061a
parent 400662 7238d6cfd63fa9b56e3984022f27011f11dda832
child 425477 cddc1b05b8760e76c0621c402047adaa553be468
permissions -rw-r--r--
Bug 1344038 - Move the gio protocol handler under netwerk/protocol. r=chmanchester,karlt Historically, we had support for some GNOME VFS protocols through the gnomevfs library, and this was under extension. This may not have been built by default when it was introduced, but GNOME upstream moved those things into Gtk itself, and we then got support for the new Gio-based protocol, similar to what we had through the gnomevfs library. Time passes, and we switched off the gnomevfs library entirely, and enabled the Gio-based protocol handlers by default. We then removed everything related to the gnomevfs library. Fast forward to now, and disabling Gio support in Firefox just doesn't make sense, and leaving the gio protocol handler as an extension doesn't make sense either. As it is a protocol handler, its natural place is under netwerk/protocol, which is where we're moving it here. The netwerk/protocol subdirectories being handled automatically, we don't need to add the moved directory in any DIRS variable.

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