/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- * * The contents of this file are subject to the Mozilla Public * License Version 1.1 (the "License"); you may not use this file * except in compliance with the License. You may obtain a copy of * the License at http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or * implied. See the License for the specific language governing * rights and limitations under the License. * * The Original Code is Mozilla Communicator. * * The Initial Developer of the Original Code is Netscape Communications * Corp. Portions created by Netscape are Copyright (C) 1999 Netscape * Communications Corp. All Rights Reserved. * * Contributor(s): * Mike Pinkerton */ #include "nsISupports.idl" #include "nsISupportsArray.idl" #include "nsITransferable.idl" #include "nsIClipboardOwner.idl" [scriptable, uuid(8B5314BA-DB01-11d2-96CE-0060B0FB9956)] interface nsIClipboard : nsISupports { const long kSelectionClipboard = 0; const long kGlobalClipboard = 1; /** * Given a transferable, set the data on the native clipboard * * @param aTransferable The transferable * @param anOwner The owner of the transferable * @param aWhichClipboard Specifies the clipboard to which this operation applies. * @result NS_Ok if no errors */ void setData ( in nsITransferable aTransferable, in nsIClipboardOwner anOwner, in long aWhichClipboard ) ; /** * Given a transferable, get the clipboard data. * * @param aTransferable The transferable * @param aWhichClipboard Specifies the clipboard to which this operation applies. * @result NS_Ok if no errors */ void getData ( in nsITransferable aTransferable, in long aWhichClipboard ) ; /** * This empties the clipboard and notifies the clipboard owner. * This empties the "logical" clipboard. It does not clear the native clipboard. * * @param aWhichClipboard Specifies the clipboard to which this operation applies. * @result NS_OK if successful. */ void emptyClipboard ( in long aWhichClipboard ) ; /** * Some platforms support deferred notification for putting data on the clipboard * This method forces the data onto the clipboard in its various formats * This may be used if the application going away. * * @param aWhichClipboard Specifies the clipboard to which this operation applies. * @result NS_OK if successful. */ void forceDataToClipboard ( in long aWhichClipboard ) ; /** * This provides a way to give correct UI feedback about, for instance, a paste * should be allowed. It does _NOT_ actually retreive the data and should be a very * inexpensive call. All it does is check if there is data on the clipboard matching * any of the flavors in the given list. * * @aFlavorList - nsISupportsString's in a nsISupportsArray (for JavaScript). * @param aWhichClipboard Specifies the clipboard to which this operation applies. * @outResult - if data is present matching one of * @result NS_OK if successful. */ boolean hasDataMatchingFlavors ( in nsISupportsArray aFlavorList, in long aWhichClipboard ) ; /** * Allows clients to determine if the implementation supports the concept of a * separate clipboard for selection. * * @outResult - true if * @result NS_OK if successful. */ boolean supportsSelectionClipboard ( ) ; }; %{ C++ %}