widget/nsIClipboard.idl
author Botond Ballo <botond@mozilla.com>
Thu, 25 Apr 2019 14:33:17 +0000
changeset 530341 4f70b98aa8705b6906b6bd2a3de66d374addb177
parent 351152 fc0cbef7e3e9af63035b38ebfec88806a8ce0dc6
child 534859 020c8c871c0d3b3920fe95935cfef06501976c0f
permissions -rw-r--r--
Bug 1546139 - Restore the call to AdjustFixedOrStickyLayer() for layers fixed to the RCD-RSF. r=kats This call served two purposes: (1) scroll the fixed layer by the eVisual transform, and (2) adjust it by the fixed margins. The first purpose is now served by applying the eVisual transform to the async zoom container, but we still need the call for the second purpose. Differential Revision: https://phabricator.services.mozilla.com/D28735

/* -*- 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++

%}