/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
 * This file is part of the LibreOffice project.
 *
 * 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/.
 *
 * This file incorporates work covered by the following license notice:
 *
 *   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 .
 */
#ifndef __ooo_vba_excel_XRange_idl__
#define __ooo_vba_excel_XRange_idl__

#include <com/sun/star/uno/XInterface.idl>
#include <com/sun/star/lang/IllegalArgumentException.idl>
#include <com/sun/star/container/XEnumerationAccess.idl>
#include <com/sun/star/script/XDefaultProperty.idl>
#include <com/sun/star/script/XDefaultMethod.idl>
#include <com/sun/star/script/XErrorQuery.idl>
#include <ooo/vba/XCollection.idl>
#include <ooo/vba/excel/XFormat.idl>
#include <ooo/vba/XHelperInterface.idl>
#include <com/sun/star/script/BasicErrorException.idl>



module ooo {  module vba {  module excel {

interface XFont;
interface XRows;
interface XColumns;
interface XComment;

interface XInterior;
interface XCharacters;
interface XBorders;
interface XValidation;
interface XWorksheet;
interface XName;

interface XRange
{
     interface com::sun::star::container::XEnumerationAccess;
    interface com::sun::star::script::XDefaultMethod;
    interface com::sun::star::script::XDefaultProperty;
    interface com::sun::star::script::XErrorQuery;
    interface ::ooo::vba::excel::XFormat;
    //interface ::ooo::vba::XHelperInterface;

    [attribute] any Value;
    [attribute] any Formula;
    [attribute] any FormulaArray;
    [attribute] any FormulaR1C1;
    [attribute, readonly] long  Count;
    [attribute, readonly] long Row;
    [attribute, readonly] long Column;
    [attribute, readonly] string Text;
    [attribute, readonly] XRange EntireRow;
    [attribute, readonly] XRange EntireColumn;
    [attribute, readonly] XComment Comment;
    [attribute] any Hidden;
    [attribute] any ColumnWidth;
    [attribute, readonly ] any Width;
    [attribute, readonly] XWorksheet Worksheet;
    [attribute, readonly] XName Name;
    [attribute] any RowHeight;
    [attribute, readonly ] any Height;
    [attribute, readonly ] any Top;
    [attribute, readonly ] any Left;
    [attribute] any PageBreak;
    [attribute, readonly] XValidation Validation;
    [attribute, readonly] any PrefixCharacter;
    [attribute] any Style
    {
        get raises ( com::sun::star::script::BasicErrorException );
    };
    [attribute] any AddIndent;
    [attribute] any ShowDetail;

    XComment AddComment( [in] any Text );
    void Clear();
    void ClearComments();
    void ClearContents();
    void ClearFormats();
    any HasFormula();
    void FillLeft();
    void FillRight();
    void FillUp();
    void FillDown();
    XRange Item([in] any RowIndex, [in] any ColumnIndex) raises(com::sun::star::script::BasicErrorException);
    XRange Offset([in] any RowOffset, [in] any ColumnOffset);
    XRange CurrentRegion();
    XRange CurrentArray();
    string Characters([in] any Start, [in] any Length);
    string Address( [in] any RowAbsolute, [in] any ColumnAbsolute, [in] any ReferenceStyle, [in] any External, [in] any RelativeTo );
    XRange Cells([in] any RowIndex, [in] any ColumnIndex);
    void Select();
    void AutoOutline() raises(com::sun::star::script::BasicErrorException);
    void Activate();
    XRange Rows( [in] any RowIndex );
    void Calculate() raises(com::sun::star::script::BasicErrorException);
    XRange Columns( [in] any ColumnIndex );
    void Copy([in] any Destination);
    void Cut([in] any Destination);
    XRange Resize( [in] any RowSize, [in] any ColumnSize );
    XRange Range( [in] any Cell1, [in] any Cell2 );
    any getCellRange();
    void PasteSpecial([in] any Paste, [in] any Operation,[in] any SkipBlanks, [in] any Transpose);
    boolean  Replace( [in] string What, [in] string Replacement, [in] any LookAt, [in] any SearchOrder, [in] any MatchCase, [in] any MatchByte, [in] any SearchFormat, [in] any ReplaceFormat );
    XRange Find( [in] any What, [in] any After, [in] any LookIn, [in] any LookAt, [in] any SearchOrder, [in] any SearchDirection, [in] any MatchCase, [in] any MatchByte, [in] any SearchFormat );

    void Sort( [in] any Key1, [in] any Order1, [in] any Key2, [in] any Type,
        [in] any Order2, [in] any Key3, [in] any Order3,
        [in] any Header, [in] any OrderCustom, [in] any MatchCase,
        [in] any Orientation, [in] any SortMethod, [in] any DataOption1,
        [in] any DataOption2, [in] any DataOption3 );
    XRange End( [in] long Direction );
    // bizarely I have to define Character method as character otherwise
    // idl complains
    XCharacters characters([in] any Start, [in] any Length);
    void Delete( [in] any Shift );

    any Areas( [in] any Item );
    any BorderAround( [in] any LineStyle, [in] any Weight, [in] any ColorIndex, [in] any Color );
        void AutoFilter([in ] any Field, [in] any Criteria1, [in] any Operator, [in] any Criteria2, [in] any VisibleDropDown);
        void Insert([in] any Shift, [in] any CopyOrigin);
    void Autofit() raises(com::sun::star::script::BasicErrorException);
    void PrintOut([in] any From, [in] any To, [in] any Copies, [in] any Preview, [in] any ActivePrinter, [in] any PrintToFile, [in] any Collate, [in] any PrToFileName);
    void AutoFill( [in] XRange Destination, [in] any Type );
    boolean GoalSeek( [in] any Goal, [in] XRange ChangingCell );
    void ClearOutline() raises(com::sun::star::script::BasicErrorException);
    void Ungroup() raises(com::sun::star::script::BasicErrorException);
    void Group() raises(com::sun::star::script::BasicErrorException);
    void Merge([in] any Across) raises(com::sun::star::script::BasicErrorException);
    void UnMerge() raises(com::sun::star::script::BasicErrorException);
    XRange Next( ) raises ( com::sun::star::script::BasicErrorException );
    XRange Previous( ) raises ( com::sun::star::script::BasicErrorException );
     XRange SpecialCells( [in] any Type, [in]  /*Optional*/ any Value ) raises ( com::sun::star::script::BasicErrorException );
    void RemoveSubtotal() raises ( com::sun::star::script::BasicErrorException );
    void    Subtotal( [in] long GroupBy, [in] long Function, [in]  /*Optional*/ sequence<long> TotalList, [in]  /*Optional*/ any Replace, [in]  /*Optional*/ any PageBreaks, [in] any SummaryBelowData ) raises ( com::sun::star::script::BasicErrorException );
    XRange MergeArea( ) raises ( com::sun::star::script::BasicErrorException );
    any Hyperlinks( [in] any Index );
};



}; }; };

#endif


/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
