/*
 * 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_XApplication_idl__
#define __ooo_vba_excel_XApplication_idl__

#include <com/sun/star/beans/XExactName.idl>
#include <com/sun/star/script/XInvocation.idl>
#include <ooo/vba/XHelperInterface.idl>
#include <ooo/vba/XAssistant.idl>

module ooo {  module vba {  module excel {

interface XRange;
interface XWorkbook;
interface XWorkbooks;
interface XWorksheets;
interface XWorksheetFunction;
interface XWindow;
interface XWorksheet;

interface XApplication
{
    // Application serves as WorksheetFunction object with little differences
    interface ::com::sun::star::beans::XExactName;
    interface ::com::sun::star::script::XInvocation;

//  interface ::ooo::vba::XHelperInterface;

    [attribute, readonly] any Selection;
    [attribute, readonly] XWorkbook ActiveWorkbook;
    [attribute, readonly] XRange ActiveCell;
    [attribute, readonly] XWindow ActiveWindow;
    [attribute, readonly] XWorksheet ActiveSheet;
    [attribute, readonly] ooo::vba::XAssistant Assistant;
    [attribute] long Calculation;
    [attribute, readonly] XWorkbook ThisWorkbook;
    [attribute, readonly] string Name;
    [attribute] boolean DisplayAlerts;
    [attribute] boolean DisplayFormulaBar;
    [attribute] any CutCopyMode;
    [attribute] any StatusBar;
    [attribute] long Cursor;
    [attribute] boolean EnableEvents;
    [attribute] boolean DisplayFullScreen;
    [attribute] boolean DisplayScrollBars;
    [attribute] boolean DisplayExcel4Menus;
    [attribute] boolean DisplayNoteIndicator;
    [attribute] boolean ShowWindowsInTaskbar;
    [attribute, readonly] string LibraryPath;
    [attribute, readonly] string TemplatesPath;
    [attribute, readonly] string PathSeparator;

    void setDefaultFilePath([in] string DefaultFilePath) raises(com::sun::star::script::BasicErrorException);

    string getDefaultFilePath() raises(com::sun::star::script::BasicErrorException);

    //any CommandBars( [in] any Index );
    any Workbooks( [in] any Index );
    any Worksheets( [in] any Index );
    any Windows( [in] any Index );
    any WorksheetFunction();
    any Evaluate( [in] string Name );
    any Dialogs( [in] any DialogIndex );
    any Range( [in] any Cell1, [in] any Cell2 );
    any Names( [in] any Index );
    void GoTo( [in] any Reference, [in] any Scroll );

    void wait( [in] double time );
    void Calculate() raises(com::sun::star::script::BasicErrorException);
    XRange Intersect([in] XRange Arg1, [in] XRange Arg2, [in] /*Optional*/ any Arg3, [in] /*Optional*/ any Arg4, [in] /*Optional*/ any Arg5, [in] /*Optional*/ any Arg6, [in] /*Optional*/ any Arg7, [in] /*Optional*/ any Arg8, [in] /*Optional*/ any Arg9, [in] /*Optional*/ any Arg10, [in] /*Optional*/ any Arg11, [in] /*Optional*/ any Arg12, [in] /*Optional*/ any Arg13, [in] /*Optional*/ any Arg14, [in] /*Optional*/ any Arg15, [in] /*Optional*/ any Arg16, [in] /*Optional*/ any Arg17, [in] /*Optional*/ any Arg18, [in] /*Optional*/ any Arg19, [in] /*Optional*/ any Arg20, [in] /*Optional*/ any Arg21, [in] /*Optional*/ any Arg22, [in] /*Optional*/ any Arg23, [in] /*Optional*/ any Arg24, [in] /*Optional*/ any Arg25, [in] /*Optional*/ any Arg26, [in] /*Optional*/ any Arg27, [in] /*Optional*/ any Arg28, [in] /*Optional*/ any Arg29, [in] /*Optional*/ any Arg30)
        raises(com::sun::star::script::BasicErrorException);
    XRange Union([in] XRange Arg1, [in] XRange Arg2, [in] /*Optional*/ any Arg3, [in] /*Optional*/ any Arg4, [in] /*Optional*/ any Arg5, [in] /*Optional*/ any Arg6, [in] /*Optional*/ any Arg7, [in] /*Optional*/ any Arg8, [in] /*Optional*/ any Arg9, [in] /*Optional*/ any Arg10, [in] /*Optional*/ any Arg11, [in] /*Optional*/ any Arg12, [in] /*Optional*/ any Arg13, [in] /*Optional*/ any Arg14, [in] /*Optional*/ any Arg15, [in] /*Optional*/ any Arg16, [in] /*Optional*/ any Arg17, [in] /*Optional*/ any Arg18, [in] /*Optional*/ any Arg19, [in] /*Optional*/ any Arg20, [in] /*Optional*/ any Arg21, [in] /*Optional*/ any Arg22, [in] /*Optional*/ any Arg23, [in] /*Optional*/ any Arg24, [in] /*Optional*/ any Arg25, [in] /*Optional*/ any Arg26, [in] /*Optional*/ any Arg27, [in] /*Optional*/ any Arg28, [in] /*Optional*/ any Arg29, [in] /*Optional*/ any Arg30)
        raises(com::sun::star::script::BasicErrorException);
    void Volatile([in] any Volatile);
    any Caller( [in] any Index );
    any MenuBars( [in] any aIndex );
};

}; }; };

#endif
