mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-01 22:55:23 +00:00
112 lines
3.8 KiB
C++
112 lines
3.8 KiB
C++
/* -*- 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")=0; 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.
|
|
*/
|
|
|
|
#ifndef nsIDiskDocument_h__
|
|
#define nsIDiskDocument_h__
|
|
|
|
|
|
#include "nsIDOMDocument.h"
|
|
|
|
|
|
#define NS_IDISKDOCUMENT_IID \
|
|
{/* {daf96f80-0183-11d3-9ce4-a865f869f0bc} */ \
|
|
0xdaf96f80, 0x0183, 0x11d3, \
|
|
{ 0x9c, 0xe4, 0xa8, 0x65, 0xf8, 0x69, 0xf0, 0xbc } }
|
|
|
|
|
|
/**
|
|
* This interface is used to save documents to disk (and other
|
|
* output devices, like network streams one day).
|
|
*
|
|
* It should be implemented by classes that need to save
|
|
* documents, like the editor and browser windows.
|
|
*
|
|
*/
|
|
|
|
class nsIDOMDocument;
|
|
class nsFileSpec;
|
|
|
|
|
|
class nsIDiskDocument : public nsISupports
|
|
{
|
|
public:
|
|
|
|
static const nsIID& GetIID() { static nsIID iid = NS_IDISKDOCUMENT_IID; return iid; }
|
|
|
|
typedef enum {eSaveFileText = 0, eSaveFileHTML = 1 } ESaveFileType;
|
|
//typedef enum {eFileDiskFile = 0, eFileRemote = 1 } ESaveFileLocation;
|
|
|
|
/** Initialize the document output. This may be called on document
|
|
* creation, or lazily before the first save. For a document read
|
|
* in from disk, it should be called on document instantiation.
|
|
*
|
|
* @param aDoc The document being observed.
|
|
* @param aFileSpec Filespec for the file, if a disk version
|
|
* of the file exists already. Otherwise nsnull.
|
|
*/
|
|
NS_IMETHOD InitDiskDocument(nsFileSpec *aFileSpec)=0;
|
|
|
|
/** Save the file to disk. This will be called after the caller has
|
|
* displayed a put file dialog, which the user confirmed. The internal
|
|
* fileSpec of the document is only updated with the given fileSpec if inSaveCopy == PR_FALSE.
|
|
*
|
|
* @param inFileSpec File to which to stream the document.
|
|
* @param inReplaceExisting true if replacing an existing file, otherwise false.
|
|
* If false and aFileSpec exists, SaveFile returns an error.
|
|
* @param inSaveCopy True to save a copy of the file, without changing the file
|
|
* referenced internally.
|
|
* @param inSaveFileType File type to save (text or HTML)
|
|
* @param inSaveCharset Charset to save the document in. If this is an empty
|
|
* string, or "UCS2", then the doc will be saved as Unicode.
|
|
*/
|
|
NS_IMETHOD SaveFile( nsFileSpec* inFileSpec,
|
|
PRBool inReplaceExisting,
|
|
PRBool inSaveCopy,
|
|
ESaveFileType inSaveFileType,
|
|
const nsString& inSaveCharset)=0;
|
|
|
|
/** Return a file spec for the file. If the file has not been saved yet,
|
|
* and thus has no fileSpec, this will return NS_ERROR_NOT_INITIALIZED.
|
|
*/
|
|
|
|
NS_IMETHOD GetFileSpec(nsFileSpec& aFileSpec)=0;
|
|
|
|
/** Get the modification count for the document. A +ve
|
|
* mod count indicates that the document is dirty,
|
|
* and needs saving.
|
|
*/
|
|
NS_IMETHOD GetModCount(PRInt32 *outModCount)=0;
|
|
|
|
/** Reset the modification count for the document.
|
|
* this marks the documents as 'clean' and not
|
|
* in need of saving.
|
|
*/
|
|
NS_IMETHOD ResetModCount()=0;
|
|
|
|
/** Increment the modification count for the document by the given
|
|
* amount (which may be -ve).
|
|
*/
|
|
NS_IMETHOD IncrementModCount(PRInt32 aNumMods)=0;
|
|
|
|
};
|
|
|
|
|
|
#endif // nsIDiskDocument_h__
|
|
|
|
|