/**************************************************************
 * 
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 * 
 *************************************************************/



#ifndef __com_sun_star_datatransfer_clipboard_XClipboard_idl__
#define __com_sun_star_datatransfer_clipboard_XClipboard_idl__

#ifndef __com_sun_star_datatransfer_XTransferable_idl__
#include <com/sun/star/datatransfer/XTransferable.idl>
#endif

#ifndef __com_sun_star_uno_XInterface_idl__
#include <com/sun/star/uno/XInterface.idl>
#endif

//=============================================================================

module com { module sun { module star { module datatransfer { module clipboard {

//=============================================================================
/** The default interface to access clipboard instances.
*/

 published interface XClipboardListener;
 published interface XClipboardOwner;

published interface XClipboard: com::sun::star::uno::XInterface
{
	//-------------------------------------------------------------------------
	/** To get the current content of the clipboard.

		@returns
		The transferable object representing the current content of
		this clipboard.

		@see com::sun::star::datatransfer::XTransferable
	*/
	XTransferable getContents();

	//-------------------------------------------------------------------------
	/** Sets the current contents of the clipboard to the specified 
		transferable object and registers the specified clipboard owner 
		as the owner of the new contents.

		@param xTrans
		The transferable object to set as new content.
		<p>If the given <type scope="com::sun::star::datatransfer">XTransferable</type>
		has no <type scope="com::sun::star::datatransfer">DataFlavor</type> the clipboard
		will be deleted.
		<p>A NULL value is not allowed.</p>

		@param xClipboardOwner
		The new owner of the clipboard. 
		<p>NULL is an acceptable value and means that the
		caller is not interested in lost ownership notifications.</p>
		
		@see com::sun::star::datatransfer::XTransferable
		@see com::sun::star::datatransfer::clipboard::XClipboardOwner
	*/
	[oneway] void setContents( [in] XTransferable xTrans, [in] XClipboardOwner xClipboardOwner );

	//-------------------------------------------------------------------------
	/** To get the name of the clipboard instance.
		
		@returns
		The name of this clipboard object. 
		<p>If the returned string is empty the 
		clipboard instance ist the system clipboard.</p>
	*/
	string getName();
};

//=============================================================================

}; }; }; }; };

#endif
