editor/nsIHTMLInlineTableEditor.idl
author Masayuki Nakano <masayuki@d-toybox.com>
Fri, 04 Aug 2017 13:57:56 +0900
changeset 373518 cddc1b05b8760e76c0621c402047adaa553be468
parent 194509 faecfa9d0bb6c46e32934182e6154758190262ed
child 400596 c208e865749a5c5840264dff8ff4a9c492cdcc18
permissions -rw-r--r--
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

/* -*- 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(eda2e65c-a758-451f-9b05-77cb8de74ed2)]

interface nsIHTMLInlineTableEditor : nsISupports
{
  /**
   * boolean indicating if inline table editing is enabled in the editor.
   * When inline table editing is enabled, and when the selection is
   * contained in a table cell, special buttons allowing to add/remove
   * a line/column are available on the cell's border.
   */
  attribute boolean inlineTableEditingEnabled;

  /**
   * Shows inline table editing UI around a table cell
   * @param aCell [IN] a DOM Element being a table cell, td or th
   */
  void showInlineTableEditingUI(in nsIDOMElement aCell);

  /**
   * Hide all inline table editing UI
   */
  void hideInlineTableEditingUI();

  /**
   * Modifies the table containing the selection according to the
   * activation of an inline table editing UI element
   * @param aUIAnonymousElement [IN] the inline table editing UI element
   */
  void doInlineTableEditingAction(in nsIDOMElement aUIAnonymousElement);

  /**
   * Refresh already visible inline table editing UI
   */
  void refreshInlineTableEditingUI();
};