widget/nsIClipboard.idl
author Chris H-C <chutten@mozilla.com>
Mon, 04 Jul 2016 11:16:05 -0400
changeset 312997 df28918fe2361f0b54ca9ce4773a29c4c0675d06
parent 309899 fc0cbef7e3e9af63035b38ebfec88806a8ce0dc6
permissions -rw-r--r--
bug 1218576 - Support remote accumulation via JS histograms. r=gfritzsche The JS histograms, too, need to dispatch their accumulations from child to parent. JSHistograms_Add now only supports histograms that are in gHistogramsMap or that were created in the parent process. After bug 1288745, maybe we'll be able to change this to be less convoluted. MozReview-Commit-ID: 3qTH89YKbGP

/* -*- Mode: IDL; 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 "nsITransferable.idl"
#include "nsIClipboardOwner.idl"

interface nsIArray;

[scriptable, uuid(ceaa0047-647f-4b8e-ad1c-aff9fa62aa51)]
interface nsIClipboard : nsISupports
{
    const long kSelectionClipboard = 0;
    const long kGlobalClipboard = 1;
    const long kFindClipboard = 2;
    // Used to cache current selection on (nsClipboard) for macOS service menu.
    const long kSelectionCache = 3;
    
   /**
    * 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 ) ;

   /**
    * 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.
    *
    * @param  aFlavorList     An array of ASCII strings.
    * @param  aLength         The length of the aFlavorList.
    * @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 ( [array, size_is(aLength)] in string aFlavorList,
                                     in unsigned long aLength,
                                     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 ( ) ;

    /**
    * Allows clients to determine if the implementation supports the concept of a
    * separate clipboard for find search strings.
    *
    * @result NS_OK if successful.
    */
    boolean supportsFindClipboard ( ) ;
};


%{ C++

%}