/*************************************************************************
 *
 *  OpenOffice.org - a multi-platform office productivity suite
 *
 *  $RCSfile: SheetCell.idl,v $
 *
 *  $Revision: 1.11 $
 *
 *  last change: $Author: rt $ $Date: 2005/09/08 04:47:46 $
 *
 *  The Contents of this file are made available subject to
 *  the terms of GNU Lesser General Public License Version 2.1.
 *
 *
 *    GNU Lesser General Public License Version 2.1
 *    =============================================
 *    Copyright 2005 by Sun Microsystems, Inc.
 *    901 San Antonio Road, Palo Alto, CA 94303, USA
 *
 *    This library is free software; you can redistribute it and/or
 *    modify it under the terms of the GNU Lesser General Public
 *    License version 2.1, as published by the Free Software Foundation.
 *
 *    This library is distributed in the hope that it will be useful,
 *    but WITHOUT ANY WARRANTY; without even the implied warranty of
 *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 *    Lesser General Public License for more details.
 *
 *    You should have received a copy of the GNU Lesser General Public
 *    License along with this library; if not, write to the Free Software
 *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
 *    MA  02111-1307  USA
 *
 ************************************************************************/

#ifndef __com_sun_star_sheet_SheetCell_idl__
#define __com_sun_star_sheet_SheetCell_idl__


#ifndef __com_sun_star_table_Cell_idl__
#include <com/sun/star/table/Cell.idl>
#endif

#ifndef __com_sun_star_text_Text_idl__
#include <com/sun/star/text/Text.idl>
#endif

#ifndef __com_sun_star_style_CharacterProperties_idl__
#include <com/sun/star/style/CharacterProperties.idl>
#endif

#ifndef __com_sun_star_style_CharacterPropertiesAsian_idl__
#include <com/sun/star/style/CharacterPropertiesAsian.idl>
#endif

#ifndef __com_sun_star_style_CharacterPropertiesComplex_idl__
#include <com/sun/star/style/CharacterPropertiesComplex.idl>
#endif

#ifndef __com_sun_star_style_ParagraphProperties_idl__
#include <com/sun/star/style/ParagraphProperties.idl>
#endif

#ifndef __com_sun_star_sheet_SheetRangesQuery_idl__
#include <com/sun/star/sheet/SheetRangesQuery.idl>
#endif


#ifndef __com_sun_star_document_XActionLockable_idl__
#include <com/sun/star/document/XActionLockable.idl>
#endif

#ifndef __com_sun_star_util_XReplaceable_idl__
#include <com/sun/star/util/XReplaceable.idl>
#endif

#ifndef __com_sun_star_util_XIndent_idl__
#include <com/sun/star/util/XIndent.idl>
#endif

#ifndef __com_sun_star_table_XColumnRowRange_idl__
#include <com/sun/star/table/XColumnRowRange.idl>
#endif

#ifndef __com_sun_star_sheet_XCellAddressable_idl__
#include <com/sun/star/sheet/XCellAddressable.idl>
#endif

#ifndef __com_sun_star_sheet_XSheetAnnotationAnchor_idl__
#include <com/sun/star/sheet/XSheetAnnotationAnchor.idl>
#endif

#ifndef __com_sun_star_text_XTextFieldsSupplier_idl__
#include <com/sun/star/text/XTextFieldsSupplier.idl>
#endif


#ifndef __com_sun_star_awt_Point_idl__
#include <com/sun/star/awt/Point.idl>
#endif

#ifndef __com_sun_star_awt_Size_idl__
#include <com/sun/star/awt/Size.idl>
#endif

#ifndef __com_sun_star_sheet_XSheetConditionalEntries_idl__
#include <com/sun/star/sheet/XSheetConditionalEntries.idl>
#endif

#ifndef __com_sun_star_beans_XPropertySet_idl__
#include <com/sun/star/beans/XPropertySet.idl>
#endif

#ifndef __com_sun_star_beans_XTolerantMultiPropertySet_idl__
#include <com/sun/star/beans/XTolerantMultiPropertySet.idl>
#endif

#ifndef __com_sun_star_util_XModifyBroadcaster_idl__
#include <com/sun/star/util/XModifyBroadcaster.idl>
#endif

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

module com {  module sun {  module star {  module sheet {

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

/** represents a single addressable cell in a spreadsheet document.
 */
published service SheetCell
{
	//-------------------------------------------------------------------------

	/** provides basic cell handling and contributes common cell
		formatting properties.
	 */
	service com::sun::star::table::Cell;

	//-------------------------------------------------------------------------

	/** provides handling of formatted text cells.
	 */
	service com::sun::star::text::Text;

	//-------------------------------------------------------------------------

	/** contributes properties for character formatting of Western text.
	 */
	service com::sun::star::style::CharacterProperties;

	//-------------------------------------------------------------------------

	/** contributes properties for character formatting of Asian text.
	 */
	service com::sun::star::style::CharacterPropertiesAsian;

	//-------------------------------------------------------------------------

	/** contributes properties for character formatting of Complex text.
	 */
	service com::sun::star::style::CharacterPropertiesComplex;

	//-------------------------------------------------------------------------

	/** contributes properties for paragraph formatting.
	 */
	service com::sun::star::style::ParagraphProperties;

	//-------------------------------------------------------------------------

	/** provides interfaces to find cells with specific properties.
	 */
	service com::sun::star::sheet::SheetRangesQuery;

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

	/** provides methods to lock and unlock the update between
		<type scope="com::sun::star::table">XCell</type> and
		<type scope="com::sun::star::text">XText</type>.
	*/
	interface com::sun::star::document::XActionLockable;

	//-------------------------------------------------------------------------

	/** provides "Find & Replace" functionality.

		<p>The property
		<member scope="com::sun::star::util">SearchDescriptor::SearchWords</member>
		has a different meaning in spreadsheets: If set to <TRUE/>, the
		spreadsheet searches for cells containing the serch text only.</p>
	 */
	interface com::sun::star::util::XReplaceable;

	//-------------------------------------------------------------------------

	/** provides modifying the cell indentation.
	 */
	interface com::sun::star::util::XIndent;

	//-------------------------------------------------------------------------

	/** provides access to the collections of columns and rows.
	 */
	interface com::sun::star::table::XColumnRowRange;

	//-------------------------------------------------------------------------

	/** provides access to the cell address of this cell.
	 */
	interface com::sun::star::sheet::XCellAddressable;

	//-------------------------------------------------------------------------

	/** provides access to the annotation attached to this cell.
	 */
	interface com::sun::star::sheet::XSheetAnnotationAnchor;

	//-------------------------------------------------------------------------

	/** provides access to the text fields used in this cell.
	 */
	interface com::sun::star::text::XTextFieldsSupplier;

	//-------------------------------------------------------------------------

    [optional] interface com::sun::star::beans::XTolerantMultiPropertySet;

	//-------------------------------------------------------------------------

	/**

	@since OOo 2.0.0

	*/
	[optional] interface com::sun::star::util::XModifyBroadcaster;

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

	/** contains the position of this cell in the sheet (in 1/100 mm).

		<p>This property contains the absolute position in the whole
		sheet, not the position in the visible area.</p>
	 */
	[readonly, property] com::sun::star::awt::Point Position;

	//-------------------------------------------------------------------------

	/** contains the size of this cell (in 1/100 mm).
	 */
	[readonly, property] com::sun::star::awt::Size Size;

	//-------------------------------------------------------------------------

	/** contains the formula string with localized function names.

		<p>This property can also be used to set a new localized formula.</p>
	 */
	[optional, property] string FormulaLocal;

	//-------------------------------------------------------------------------

	/** contains the result type of a formula.

		@see com::sun::star::sheet::FormulaResult
	 */
	[readonly, property] long FormulaResultType;

	//-------------------------------------------------------------------------

	/** contains the conditional formatting settings for this cell.

		<p>After a conditional format has been changed it has to be
		reinserted into the property set.</p>

		@see com::sun::star::sheet::TableConditionalFormat
	 */
	[property] com::sun::star::sheet::XSheetConditionalEntries
		ConditionalFormat;

	//-------------------------------------------------------------------------

	/** contains the conditional formatting settings for this cell,
		using localized formulas.

		<p>After a conditional format has been changed it has to be
		reinserted into the property set.</p>

		@see com::sun::star::sheet::TableConditionalFormat
	 */
	[optional, property] com::sun::star::sheet::XSheetConditionalEntries
		ConditionalFormatLocal;

	//-------------------------------------------------------------------------

	/** contains the data validation settings for this cell.

		<p>After the data validation settings have been changed the
		validation has to be reinserted into the property set.</p>

		@see com::sun::star::sheet::TableValidation
	 */
	[property] com::sun::star::beans::XPropertySet Validation;

	//-------------------------------------------------------------------------

	/** contains the data validation settings for this cell,
		using localized formulas.

		<p>After the data validation settings have been changed the
		validation has to be reinserted into the property set.</p>

		@see com::sun::star::sheet::TableValidation
	 */
	[optional, property] com::sun::star::beans::XPropertySet ValidationLocal;

};

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

}; }; }; };

#endif

