/**************************************************************
 * 
 * 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 __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] string DefaultFilePath;
    [attribute, readonly] string LibraryPath;
    [attribute, readonly] string TemplatesPath;
    [attribute, readonly] string PathSeparator;

    //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);
	void DoEvents();
	any Caller( [in] any Index );
	any GetOpenFilename( [in] any FileFilter, [in] any FilterIndex, [in] any Title, [in] any ButtonText, [in] any MultiSelect );
	any GetSaveAsFilename( [in] any InitialFileName, [in] any FileFilter, [in] any FilterIndex, [in] any Title, [in] any ButtonText );
};

}; }; };

#endif
