/*************************************************************************
 *
 *  $RCSfile: SheetCellRange.idl,v $
 *
 *  $Revision: 1.6.4.2 $
 *
 *  last change: $Author: mi $ $Date: 2003/01/21 17:48:17 $
 *
 *  The Contents of this file are made available subject to the terms of
 *  either of the following licenses
 *
 *         - GNU Lesser General Public License Version 2.1
 *         - Sun Industry Standards Source License Version 1.1
 *
 *  Sun Microsystems Inc., October, 2000
 *
 *  GNU Lesser General Public License Version 2.1
 *  =============================================
 *  Copyright 2000 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
 *
 *
 *  Sun Industry Standards Source License Version 1.1
 *  =================================================
 *  The contents of this file are subject to the Sun Industry Standards
 *  Source 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.openoffice.org/license.html.
 *
 *  Software provided under this License is provided on an "AS IS" basis,
 *  WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
 *  WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
 *  MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
 *  See the License for the specific provisions governing your rights and
 *  obligations concerning the Software.
 *
 *  The Initial Developer of the Original Code is: Sun Microsystems, Inc.
 *
 *  Copyright: 2000 by Sun Microsystems, Inc.
 *
 *  All Rights Reserved.
 *
 *  Contributor(s): _______________________________________
 *
 *
 ************************************************************************/

#ifndef __com_sun_star_sheet_SheetCellRange_idl__
#define __com_sun_star_sheet_SheetCellRange_idl__


#ifndef __com_sun_star_table_CellRange_idl__
#include <com/sun/star/table/CellRange.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_util_XReplaceable_idl__
#include <com/sun/star/util/XReplaceable.idl>
#endif

#ifndef __com_sun_star_util_XMergeable_idl__
#include <com/sun/star/util/XMergeable.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_table_XAutoFormattable_idl__
#include <com/sun/star/table/XAutoFormattable.idl>
#endif

#ifndef __com_sun_star_sheet_XSheetCellRange_idl__
#include <com/sun/star/sheet/XSheetCellRange.idl>
#endif

#ifndef __com_sun_star_sheet_XCellRangeData_idl__
#include <com/sun/star/sheet/XCellRangeData.idl>
#endif

#ifndef __com_sun_star_sheet_XCellRangeAddressable_idl__
#include <com/sun/star/sheet/XCellRangeAddressable.idl>
#endif

#ifndef __com_sun_star_sheet_XSheetOperation_idl__
#include <com/sun/star/sheet/XSheetOperation.idl>
#endif

#ifndef __com_sun_star_sheet_XCellSeries_idl__
#include <com/sun/star/sheet/XCellSeries.idl>
#endif

#ifndef __com_sun_star_sheet_XArrayFormulaRange_idl__
#include <com/sun/star/sheet/XArrayFormulaRange.idl>
#endif

#ifndef __com_sun_star_sheet_XMultipleOperation_idl__
#include <com/sun/star/sheet/XMultipleOperation.idl>
#endif

#ifndef __com_sun_star_util_XSortable_idl__
#include <com/sun/star/util/XSortable.idl>
#endif

#ifndef __com_sun_star_util_XImportable_idl__
#include <com/sun/star/util/XImportable.idl>
#endif

#ifndef __com_sun_star_sheet_XSubTotalCalculatable_idl__
#include <com/sun/star/sheet/XSubTotalCalculatable.idl>
#endif

#ifndef __com_sun_star_sheet_XSheetFilterableEx_idl__
#include <com/sun/star/sheet/XSheetFilterableEx.idl>
#endif

#ifndef __com_sun_star_sheet_XCellFormatRangesSupplier_idl__
#include <com/sun/star/sheet/XCellFormatRangesSupplier.idl>
#endif

#ifndef __com_sun_star_sheet_XUniqueCellFormatRangesSupplier_idl__
#include <com/sun/star/sheet/XUniqueCellFormatRangesSupplier.idl>
#endif

#ifndef __com_sun_star_chart_XChartDataArray_idl__
#include <com/sun/star/chart/XChartDataArray.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

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

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

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

/** represents a rectangular range of cells in a spreadsheet document.

	<p>This service is an extension of the CellRange service for use
	in spreadsheet documents.</p>
 */
service SheetCellRange
{
	//-------------------------------------------------------------------------

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

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

	/** 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 "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 merging and unmerging the cells of this cell range.
	 */
	interface com::sun::star::util::XMergeable;

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

	/** 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 applying an AutoFormat to the cell range.
	 */
	interface com::sun::star::table::XAutoFormattable;

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

	/** provides access to the spreadsheet that contains this cell range.
	 */
	interface com::sun::star::sheet::XSheetCellRange;

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

	/** provides simultaneous access to the contents of all cells.
	 */
	interface com::sun::star::sheet::XCellRangeData;

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

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

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

	/** provides computation of a value based on the contents of all
		cells of this range and to clear specific cells.
	 */
	interface com::sun::star::sheet::XSheetOperation;

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

	/** provides filling out the cell range automatically with values based
		on a start value, step count and fill mode.
	 */
	interface com::sun::star::sheet::XCellSeries;

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

	/** provides handling of array formulas.
	 */
	interface com::sun::star::sheet::XArrayFormulaRange;

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

	/** provides access to the Multiple Operations feature.
	 */
	interface com::sun::star::sheet::XMultipleOperation;

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

	/** provides sorting functionality.
	 */
	interface com::sun::star::util::XSortable;

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

	/** provides functionality to import data from external data sources.
	 */
	interface com::sun::star::util::XImportable;

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

	/** provides calculating SubTotal values in this range.
	 */
	interface com::sun::star::sheet::XSubTotalCalculatable;

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

	/** provides filtering the contents of this range.
	 */
	interface com::sun::star::sheet::XSheetFilterableEx;

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

	/** provide access to a collection of equal-formatted cell ranges.
	 */
	interface com::sun::star::sheet::XCellFormatRangesSupplier;

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

	/** provide access to a collection of equal-formatted cell ranges.
	 */
	interface com::sun::star::sheet::XUniqueCellFormatRangesSupplier;

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

	/** provides modifying the source data cells of a chart and makes
		it possible to learn about changes in the cell values.
	 */
	interface com::sun::star::chart::XChartDataArray;

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

	/** contains the position of the top left cell of this range 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 range (in 1/100 mm).
	 */
	[readonly, property] com::sun::star::awt::Size Size;

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

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

