From 43a97878ce14b72f0981164f87f2e35e14151312 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 11:22:09 +0200 Subject: Adding upstream version 110.0.1. Signed-off-by: Daniel Baumann --- editor/nsIHTMLEditor.idl | 342 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 342 insertions(+) create mode 100644 editor/nsIHTMLEditor.idl (limited to 'editor/nsIHTMLEditor.idl') diff --git a/editor/nsIHTMLEditor.idl b/editor/nsIHTMLEditor.idl new file mode 100644 index 0000000000..fd79f0b868 --- /dev/null +++ b/editor/nsIHTMLEditor.idl @@ -0,0 +1,342 @@ +/* -*- 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 nsIContent; + +webidl Document; +webidl Element; +webidl Node; +webidl Selection; + +[scriptable, builtinclass, uuid(87ee993e-985f-4a43-a974-0d9512da2fb0)] +interface nsIHTMLEditor : nsISupports +{ +%{C++ + typedef short EAlignment; +%} + + // used by GetAlignment() + const short eLeft = 0; + const short eCenter = 1; + const short eRight = 2; + const short eJustify = 3; + + + /* ------------ Inline property methods -------------- */ + + /** + * SetInlineProperty() sets the aggregate properties on the current selection + * + * @param aProperty the property to set on the selection + * @param aAttribute the attribute of the property, if applicable. + * May be null. + * Example: aProperty="font", aAttribute="color" + * @param aValue if aAttribute is not null, the value of the attribute. + * May be null. + * Example: aProperty="font", aAttribute="color", + * aValue="0x00FFFF" + */ + [can_run_script] + void setInlineProperty(in AString aProperty, + in AString aAttribute, + in AString aValue); + + /** + * getInlinePropertyWithAttrValue() gets aggregate properties of the current + * selection. All object in the current selection are scanned and their + * attributes are represented in a list of Property object. + * + * @param aProperty the property to get on the selection + * @param aAttribute the attribute of the property, if applicable. + * May be null. + * Example: aProperty="font", aAttribute="color" + * @param aValue if aAttribute is not null, the value of the attribute. + * May be null. + * Example: aProperty="font", aAttribute="color", + * aValue="0x00FFFF" + * @param aFirst [OUT] PR_TRUE if the first text node in the + * selection has the property + * @param aAny [OUT] PR_TRUE if any of the text nodes in the + * selection have the property + * @param aAll [OUT] PR_TRUE if all of the text nodes in the + * selection have the property + */ + [can_run_script] + AString getInlinePropertyWithAttrValue(in AString aProperty, + in AString aAttribute, + in AString aValue, + out boolean aFirst, + out boolean aAny, + out boolean aAll); + + /** + * removeInlineProperty() removes a property which changes inline style of + * text. E.g., bold, italic, super and sub. + * + * @param aProperty Tag name whcih represents the inline style you want to + * remove. E.g., "strong", "b", etc. + * If "href", element which has href attribute will be + * removed. + * If "name", element which has non-empty name + * attribute will be removed. + * @param aAttribute If aProperty is "font", aAttribute should be "face", + * "size", "color" or "bgcolor". + */ + [can_run_script] + void removeInlineProperty(in AString aProperty, in AString aAttribute); + + /* ------------ HTML content methods -------------- */ + + /** + * Tests if a node is a BLOCK element according the the HTML 4.0 DTD. + * This does NOT consider CSS effect on display type + * + * @param aNode the node to test + */ + boolean nodeIsBlock(in Node node); + + /** + * Insert some HTML source at the current location + * + * @param aInputString the string to be inserted + */ + [can_run_script] + void insertHTML(in AString aInputString); + + /** + * Rebuild the entire document from source HTML + * Needed to be able to edit HEAD and other outside-of-BODY content + * + * @param aSourceString HTML source string of the entire new document + */ + [can_run_script] + void rebuildDocumentFromSource(in AString aSourceString); + + /** + * Insert an element, which may have child nodes, at the selection + * Used primarily to insert a new element for various insert element dialogs, + * but it enforces the HTML 4.0 DTD "CanContain" rules, so it should + * be useful for other elements. + * + * @param aElement The element to insert + * @param aDeleteSelection Delete the selection before inserting + * If aDeleteSelection is PR_FALSE, then the element is inserted + * after the end of the selection for all element except + * Named Anchors, which insert before the selection + */ + [can_run_script] + void insertElementAtSelection(in Element aElement, + in boolean aDeleteSelection); + + /** + * Set the BaseURL for the document to the current URL + * but only if the page doesn't have a tag + * This should be done after the document URL has changed, + * such as after saving a file + * This is used as base for relativizing link and image urls + */ + void updateBaseURL(); + + + /* ------------ Selection manipulation -------------- */ + /* Should these be moved to Selection? */ + + /** + * Set the selection at the suppled element + * + * @param aElement An element in the document + */ + [can_run_script] + void selectElement(in Element aElement); + + /** + * getParagraphState returns what block tag paragraph format is in + * the selection. + * @param aMixed True if there is more than one format + * @return Name of block tag. "" is returned for none. + */ + AString getParagraphState(out boolean aMixed); + + /** + * getFontFaceState returns what font face is in the selection. + * @param aMixed True if there is more than one font face + * @return Name of face. Note: "tt" is returned for + * tt tag. "" is returned for none. + */ + [can_run_script] + AString getFontFaceState(out boolean aMixed); + + /** + * getHighlightColorState returns what the highlight color of the selection. + * @param aMixed True if there is more than one font color + * @return Color string. "" is returned for none. + */ + [can_run_script] + AString getHighlightColorState(out boolean aMixed); + + /** + * getListState returns what list type is in the selection. + * @param aMixed True if there is more than one type of list, or + * if there is some list and non-list + * @param aOL The company that employs me. No, really, it's + * true if an "ol" list is selected. + * @param aUL true if an "ul" list is selected. + * @param aDL true if a "dl" list is selected. + */ + void getListState(out boolean aMixed, out boolean aOL, out boolean aUL, + out boolean aDL); + + /** + * getListItemState returns what list item type is in the selection. + * @param aMixed True if there is more than one type of list item, or + * if there is some list and non-list + * XXX This ignores `
  • ` element selected state. + * For example, even if `
  • ` and `
    ` are selected, + * this is set to false. + * @param aLI true if "li" list items are selected. + * @param aDT true if "dt" list items are selected. + * @param aDD true if "dd" list items are selected. + */ + void getListItemState(out boolean aMixed, out boolean aLI, + out boolean aDT, out boolean aDD); + + /** + * getAlignment returns what alignment is in the selection. + * @param aMixed Always returns false. + * @param aAlign enum value for first encountered alignment + * (left/center/right) + */ + [can_run_script] + void getAlignment(out boolean aMixed, out short aAlign); + + /** + * Document me! + * + */ + [can_run_script] + void makeOrChangeList(in AString aListType, in boolean entireList, + in AString aBulletType); + + /** + * removeList removes list items (
  • ,
    , and
    ) and list structures + * (