/* -*- 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" %{C++ class nsIDOMWindow; class nsIDOMDocument; class nsIDOMSelection; class nsIDOMElement; %} interface nsIFileSpec; [scriptable, uuid(9afff72b-ca9a-11d2-96c9-0060b0fb9956)] interface nsIEditorShell : nsISupports { readonly attribute wstring contentsAsText; readonly attribute wstring contentsAsHTML; readonly attribute wstring selectionAsHTML; readonly attribute wstring selectionAsText; readonly attribute nsIDOMDocument editorDocument; readonly attribute nsIDOMSelection editorSelection; 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); nsIDOMElement GetSelectedElement(in wstring tagName); 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); /* 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); /* 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); %}