/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- * * The contents of this file are subject to the Netscape Public License * Version 1.0 (the "NPL"); you may not use this file except in * compliance with the NPL. You may obtain a copy of the NPL at * http://www.mozilla.org/NPL/ * * Software distributed under the NPL is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL * for the specific language governing rights and limitations under the * NPL. * * The Initial Developer of this code under the NPL is Netscape * Communications Corporation. Portions created by Netscape are * Copyright (C) 1998 Netscape Communications Corporation. All Rights * Reserved. */ #include "nsISupports.idl" #include "domstubs.idl" #include "nsIFileSpec.idl" #include "nsISupportsArray.idl" %{C++ class nsIDOMWindow; class nsIDOMDocument; class nsIDOMSelection; class nsIDOMElement; class nsIDOMNode; %} interface nsIFileSpec; [scriptable, uuid(9afff72b-ca9a-11d2-96c9-0060b0fb9956)] interface nsIEditorShell : nsISupports { readonly attribute nsIDOMDocument editorDocument; readonly attribute nsIDOMSelection editorSelection; %{C++ enum { eDocumentStatusUnmodified, eDocumentStatusModified }; %} readonly attribute boolean documentModified; attribute wstring paragraphFormat; attribute long wrapColumn; /* Setup */ void SetEditorType(in wstring editorType); void SetToolbarWindow(in nsIDOMWindow win); void SetContentWindow(in nsIDOMWindow win); void SetWebShellWindow(in nsIDOMWindow win); void LoadUrl(in wstring url); void Init(); /* Commands */ void NewWindow(); void Open(); void Save(); void SaveAs(); void CloseWindow(); void Print(); void Exit(); void Undo(); void Redo(); void Cut(); void Copy(); void Paste(); void PasteAsQuotation(); void PasteAsCitedQuotation(in wstring cite); void InsertAsQuotation(in wstring quotedText); void InsertAsCitedQuotation(in wstring quotedText, in wstring cite); void SelectAll(); void DeleteSelection(in PRInt32 action); void Find(); void FindNext(); /* Structure change */ void InsertText(in wstring textToInsert); void InsertSource(in wstring textToInsert); void InsertBreak(); void InsertLink(); void InsertImage(); void InsertList(in wstring listType); void Indent(in wstring indent); void Align(in wstring align); /* Element insert and property editing */ nsIDOMElement GetSelectedElement(in wstring tagName); /* returns the element conversion of supplied node or a parent of required type */ nsIDOMElement GetElementOrParentByTagName(in wstring tagName, in nsIDOMNode node); nsIDOMElement CreateElementWithDefaults(in wstring tagName); void InsertElement(in nsIDOMElement element, in boolean deleteSelection); void SaveHLineSettings(in nsIDOMElement element); void InsertLinkAroundSelection(in nsIDOMElement anchorElement); void SelectElement(in nsIDOMElement element); void SetSelectionAfterElement(in nsIDOMElement element); /* Table editing */ PRInt32 GetRowIndex(in nsIDOMElement cellElement); PRInt32 GetColumnIndex(in nsIDOMElement cellElement); nsIDOMElement GetCellAt(in nsIDOMElement tableElement, in PRInt32 rowIndex, in PRInt32 colIndex); PRInt32 GetRowCellCount(in nsIDOMElement tableElement, in PRInt32 colIndex); PRInt32 GetColumnCellCount(in nsIDOMElement tableElement, in PRInt32 rowIndex); PRInt32 GetMaxRowCellCount(in nsIDOMElement tableElement); PRInt32 GetMaxColumnCellCount(in nsIDOMElement tableElement); /* Get list of embedded objects, e.g. for mail compose */ nsISupportsArray GetEmbeddedObjects(); /* Formatting */ void SetTextProperty(in wstring prop, in wstring attr, in wstring value); void RemoveTextProperty(in wstring prop, in wstring attr); void GetTextProperty(in wstring prop, in wstring attr, in wstring value, out wstring firstHas, out wstring anyHas, out wstring allHas); void SetBodyAttribute(in wstring attr, in wstring value); void SetBackgroundColor(in wstring color); void ApplyStyleSheet(in wstring url); /* Output. * format is mime type, e.g. text/html; * See nsIEditor.h for legal flag values. */ wstring GetContentsAs(in wstring format, in PRUint32 flags); /* For debugging, dump the content tree: */ void DumpContentTree(); /* Utility */ wstring GetLocalFileURL(in nsIDOMWindow parent, in wstring filterType); void BeginBatchChanges(); void EndBatchChanges(); void RunUnitTests(); void StartLogging(in nsIFileSpec logFile); void StopLogging(); }; %{C++ extern nsresult NS_NewEditorShell(nsIEditorShell** aEditorShell); %}