summaryrefslogtreecommitdiff
path: root/sc/workben/addin.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'sc/workben/addin.cxx')
-rw-r--r--sc/workben/addin.cxx581
1 files changed, 0 insertions, 581 deletions
diff --git a/sc/workben/addin.cxx b/sc/workben/addin.cxx
deleted file mode 100644
index 9500a9fb1..000000000
--- a/sc/workben/addin.cxx
+++ /dev/null
@@ -1,581 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org 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 version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifdef _MSC_VER
-#pragma hdrstop
-#endif
-
-#include <usr/factoryhlp.hxx>
-#include <usr/macros.hxx>
-#include <usr/reflserv.hxx>
-#include <osl/mutex.hxx>
-#include <vcl/svapp.hxx>
-#include <tools/date.hxx>
-#include <svl/itemprop.hxx>
-#include <usr/proptypehlp.hxx>
-#include <cppuhelper/factory.hxx>
-#include <uno/lbnames.h>
-#include <osl/diagnose.h>
-
-#include <com/sun/star/util/date.hpp>
-
-#include "addin.hxx"
-#include "result.hxx"
-
-using namespace com::sun::star;
-
-//------------------------------------------------------------------------
-
-
-//------------------------------------------------------------------------
-
-SMART_UNO_IMPLEMENTATION( ScTestAddIn, UsrObject );
-
-#define SCADDIN_SERVICE L"com.sun.star.sheet.AddIn"
-#define SCTESTADDIN_SERVICE L"stardiv.one.sheet.DemoAddIn"
-
-//------------------------------------------------------------------------
-
-extern "C" {
-
-sal_Bool SAL_CALL component_writeInfo(
- void * pServiceManager, registry::XRegistryKey * pRegistryKey )
-{
- if (pRegistryKey)
- {
- try
- {
- UString aImpl = L"/";
- aImpl += ScTestAddIn::getImplementationName_Static();
- aImpl += L"/UNO/SERVICES";
-
- uno::Reference<registry::XRegistryKey> xNewKey(
- reinterpret_cast<registry::XRegistryKey*>(pRegistryKey)->createKey(aImpl) );
-
- uno::Sequence <rtl::OUString> aSequ = ScTestAddIn::getSupportedServiceNames_Static();
- const rtl::OUString * pArray = aSequ.getConstArray();
- for( INT32 i = 0; i < aSequ.getLength(); i++ )
- xNewKey->createKey( pArray[i] );
-
- return sal_True;
- }
- catch (registry::InvalidRegistryException&)
- {
- OSL_ENSHURE( false, "### InvalidRegistryException!" );
- }
- }
- return false;
-}
-
-SAL_DLLPUBLIC_EXPORT void * SAL_CALL component_getFactory(
- const sal_Char * pImplName, void * pServiceManager, void * pRegistryKey )
-{
- void* pRet = 0;
-
- if ( pServiceManager && UString(pImplName) == ScTestAddIn::getImplementationName_Static() )
- {
- uno::Reference<lang::XSingleServiceFactory> xFactory( cppu::createOneInstanceFactory(
- reinterpret_cast<lang::XMultiServiceFactory*>(pServiceManager),
- ScTestAddIn::getImplementationName_Static(),
- ScTestAddIn_CreateInstance,
- ScTestAddIn::getSupportedServiceNames_Static() ) );
-
- if (xFactory.is())
- {
- xFactory->acquire();
- pRet = xFactory.get();
- }
- }
-
- return pRet;
-}
-
-} // extern C
-
-//------------------------------------------------------------------------
-
-ScTestAddIn::ScTestAddIn()
-{
-}
-
-ScTestAddIn::~ScTestAddIn()
-{
-}
-
-UString ScTestAddIn::getImplementationName_Static()
-{
- return L"stardiv.StarCalc.ScTestAddIn";
-}
-
-::com::sun::star::uno::Sequence< ::rtl::OUString > ScTestAddIn::getSupportedServiceNames_Static()
-{
- uno::Sequence< rtl::OUString > aRet(2);
- rtl::OUString* pArray = aRet.getArray();
- pArray[0] = SCADDIN_SERVICE;
- pArray[1] = SCTESTADDIN_SERVICE;
- return aRet;
-}
-
-uno::Reference<uno::XInterface> ScTestAddIn_CreateInstance(
- const uno::Reference<lang::XMultiServiceFactory>& )
-{
- static uno::Reference<uno::XInterface> xInst = (cppu::OWeakObject*)new ScTestAddIn();
- return xInst;
-}
-
-
-// XAddIn
-
-UString ScTestAddIn::getProgrammaticFuntionName(const UString& aDisplayName)
- THROWS( (UsrSystemException) )
-{
- //!...
- return UString();
-}
-
-UString ScTestAddIn::getDisplayFunctionName(const UString& aProgrammaticName)
- THROWS( (UsrSystemException) )
-{
- // return translated strings
-
- UString aRet;
- if ( aProgrammaticName == L"countParams" ) aRet = L"ParamAnzahl";
- else if ( aProgrammaticName == L"addOne" ) aRet = L"PlusEins";
- else if ( aProgrammaticName == L"repeatStr" ) aRet = L"WiederholeString";
- else if ( aProgrammaticName == L"getDateString" ) aRet = L"Datumsstring";
- else if ( aProgrammaticName == L"getColorValue" ) aRet = L"Farbwert";
- else if ( aProgrammaticName == L"transpose" ) aRet = L"Transponieren";
- else if ( aProgrammaticName == L"transposeInt" ) aRet = L"IntegerTransponieren";
- else if ( aProgrammaticName == L"repeatMultiple" )aRet = L"Mehrfach";
- else if ( aProgrammaticName == L"getStrOrVal" ) aRet = L"StringOderWert";
- else if ( aProgrammaticName == L"callAsync" ) aRet = L"Asynchron";
- return aRet;
-}
-
-UString ScTestAddIn::getFunctionDescription(const UString& aProgrammaticName)
- THROWS( (UsrSystemException) )
-{
- // return translated strings
-
- UString aRet;
- if ( aProgrammaticName == L"countParams" ) aRet = L"Gibt die Anzahl der Parameter zurueck.";
- else if ( aProgrammaticName == L"addOne" ) aRet = L"Addiert 1 zur uebergebenen Zahl.";
- else if ( aProgrammaticName == L"repeatStr" ) aRet = L"Wiederholt eine Zeichenkette.";
- else if ( aProgrammaticName == L"getDateString" ) aRet = L"Wandelt ein Datum in eine Zeichenkette.";
- else if ( aProgrammaticName == L"getColorValue" ) aRet = L"Gibt den Farbwert eines Zellbereichs zurueck. Bei transparentem Hintergrund wird -1 zurueckgegeben";
- else if ( aProgrammaticName == L"transpose" ) aRet = L"Transponiert eine Matrix.";
- else if ( aProgrammaticName == L"transposeInt" ) aRet = L"Transponiert eine Matrix mit Ganzzahlen.";
- else if ( aProgrammaticName == L"repeatMultiple" )aRet = L"Wiederholt mehrere Bestandteile.";
- else if ( aProgrammaticName == L"getStrOrVal" ) aRet = L"Gibt einen String oder einen Wert zurueck.";
- else if ( aProgrammaticName == L"callAsync" ) aRet = L"Test fuer asynchrone Funktion.";
- return aRet;
-}
-
-UString ScTestAddIn::getDisplayArgumentName(const UString& aProgrammaticFunctionName,
- INT32 nArgument) THROWS( (UsrSystemException) )
-{
- // return translated strings
-
- UString aRet;
- if ( aProgrammaticFunctionName == L"countParams" )
- {
- if ( nArgument == 0 ) aRet = L"Parameter";
- }
- else if ( aProgrammaticFunctionName == L"addOne" )
- {
- if ( nArgument == 0 ) aRet = L"Wert";
- }
- else if ( aProgrammaticFunctionName == L"repeatStr" )
- {
- if ( nArgument == 0 ) aRet = L"String";
- else if ( nArgument == 1 ) aRet = L"Anzahl";
- }
- else if ( aProgrammaticFunctionName == L"getDateString" )
- {
- if ( nArgument == 0 ) aRet = L"Dokument";
- else if ( nArgument == 1 ) aRet = L"Wert";
- }
- else if ( aProgrammaticFunctionName == L"getColorValue" )
- {
- if ( nArgument == 0 ) aRet = L"Bereich";
- }
- else if ( aProgrammaticFunctionName == L"transpose" )
- {
- if ( nArgument == 0 ) aRet = L"Matrix";
- }
- else if ( aProgrammaticFunctionName == L"transposeInt" )
- {
- if ( nArgument == 0 ) aRet = L"Matrix";
- }
- else if ( aProgrammaticFunctionName == L"repeatMultiple" )
- {
- if ( nArgument == 0 ) aRet = L"Anzahl";
- else if ( nArgument == 1 ) aRet = L"Trenner";
- else if ( nArgument == 2 ) aRet = L"Inhalt";
- }
- else if ( aProgrammaticFunctionName == L"getStrOrVal" )
- {
- if ( nArgument == 0 ) aRet = L"Flag";
- }
- else if ( aProgrammaticFunctionName == L"callAsync" )
- {
- if ( nArgument == 0 ) aRet = L"Name";
- }
- return aRet;
-}
-
-UString ScTestAddIn::getArgumentDescription(const UString& aProgrammaticFunctionName,
- INT32 nArgument) THROWS( (UsrSystemException) )
-{
- // return translated strings
-
- UString aRet;
- if ( aProgrammaticFunctionName == L"countParams" )
- {
- if ( nArgument == 0 ) aRet = L"Beliebiger Parameter";
- }
- else if ( aProgrammaticFunctionName == L"addOne" )
- {
- if ( nArgument == 0 ) aRet = L"Der Wert, zu dem 1 addiert wird";
- }
- else if ( aProgrammaticFunctionName == L"repeatStr" )
- {
- if ( nArgument == 0 ) aRet = L"Der Text, der wiederholt wird";
- else if ( nArgument == 1 ) aRet = L"Die Anzahl der Wiederholungen";
- }
- else if ( aProgrammaticFunctionName == L"getDateString" )
- {
- if ( nArgument == 0 ) aRet = L"(intern)";
- else if ( nArgument == 1 ) aRet = L"Der Wert, der als Datum formatiert wird";
- }
- else if ( aProgrammaticFunctionName == L"getColorValue" )
- {
- if ( nArgument == 0 ) aRet = L"Der Bereich, dessen Hintergrundfarbe abgefragt wird";
- }
- else if ( aProgrammaticFunctionName == L"transpose" )
- {
- if ( nArgument == 0 ) aRet = L"Die Matrix, die transponiert werden soll";
- }
- else if ( aProgrammaticFunctionName == L"transposeInt" )
- {
- if ( nArgument == 0 ) aRet = L"Die Matrix, die transponiert werden soll";
- }
- else if ( aProgrammaticFunctionName == L"repeatMultiple" )
- {
- if ( nArgument == 0 ) aRet = L"Anzahl der Wiederholungen";
- else if ( nArgument == 1 ) aRet = L"Text, der zwischen den Inhalten erscheint";
- else if ( nArgument == 2 ) aRet = L"Mehrere Inhalte";
- }
- else if ( aProgrammaticFunctionName == L"getStrOrVal" )
- {
- if ( nArgument == 0 ) aRet = L"Wenn Flag 0 ist, wird ein Wert zurueckgegeben, sonst ein String.";
- }
- else if ( aProgrammaticFunctionName == L"callAsync" )
- {
- if ( nArgument == 0 ) aRet = L"Ein String";
- }
- return aRet;
-}
-
-UString ScTestAddIn::getProgrammaticCategoryName(const UString& aProgrammaticFunctionName)
- THROWS( (UsrSystemException) )
-{
- // return non-translated strings
-
- UString aRet;
- if ( aProgrammaticFunctionName == L"countParams" ) aRet = L"Information";
- else if ( aProgrammaticFunctionName == L"addOne" ) aRet = L"Mathematical";
- else if ( aProgrammaticFunctionName == L"repeatStr" ) aRet = L"Text";
- else if ( aProgrammaticFunctionName == L"getDateString" ) aRet = L"Date&Time";
- else if ( aProgrammaticFunctionName == L"getColorValue" ) aRet = L"Spreadsheet";
- else if ( aProgrammaticFunctionName == L"transpose" ) aRet = L"Matrix";
- else if ( aProgrammaticFunctionName == L"transposeInt" ) aRet = L"Matrix";
- else if ( aProgrammaticFunctionName == L"repeatMultiple" )aRet = L"Text";
- else if ( aProgrammaticFunctionName == L"getStrOrVal" ) aRet = L"Add-In";
- else if ( aProgrammaticFunctionName == L"callAsync" ) aRet = L"Realtime"; // new group
- return aRet;
-}
-
-UString ScTestAddIn::getDisplayCategoryName(const UString& aProgrammaticFunctionName)
- THROWS( (UsrSystemException) )
-{
- // return translated strings
-
- return L"irgendwas"; // not used for predefined categories
-}
-
-// XLocalizable
-
-void ScTestAddIn::setLocale(const lang::Locale& eLocale) THROWS( (UsrSystemException) )
-{
- aFuncLoc = eLocale;
-}
-
-::com::sun::star::lang::Locale SAL_CALL ScTestAddIn::getLocale( ) throw(::com::sun::star::uno::RuntimeException)
-{
- return aFuncLoc;
-}
-
-// XTestAddIn
-
-sal_Int32 SAL_CALL ScTestAddIn::countParams( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& aArgs ) throw(::com::sun::star::uno::RuntimeException)
-{
- return aArgs.getLength();
-}
-
-double SAL_CALL ScTestAddIn::addOne( double fValue ) throw(::com::sun::star::uno::RuntimeException)
-{
- return fValue + 1.0;
-}
-
-::rtl::OUString SAL_CALL ScTestAddIn::repeatStr( const ::rtl::OUString& aStr, sal_Int32 nCount ) throw(::com::sun::star::uno::RuntimeException)
-{
- String aRet;
- String aStrStr = OUStringToString( aStr, CHARSET_SYSTEM );
- for (long i=0; i<nCount; i++)
- aRet += aStrStr;
-
- return StringToOUString( aRet, CHARSET_SYSTEM );
-}
-
-::rtl::OUString SAL_CALL ScTestAddIn::getDateString( const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& xCaller, double fValue ) throw(::com::sun::star::uno::RuntimeException)
-{
- uno::Any aDateAny = xCaller->getPropertyValue( L"NullDate" );
- {
- util::Date aDate;
- aDateAny >>= aDate;
- {
- Date aNewDate( aDate.Day, aDate.Month, aDate.Year );
-
- aNewDate += (long)(fValue+0.5);
-
- String aRet;
- aRet += aNewDate.GetDay();
- aRet += '.';
- aRet += aNewDate.GetMonth();
- aRet += '.';
- aRet += aNewDate.GetYear();
- return StringToOUString( aRet, CHARSET_SYSTEM );
- }
- }
-
- return L"**ERROR**";
-}
-
-sal_Int32 SAL_CALL ScTestAddIn::getColorValue( const ::com::sun::star::uno::Reference< ::com::sun::star::table::XCellRange >& xRange ) throw(::com::sun::star::uno::RuntimeException)
-{
- uno::Reference<beans::XPropertySet> xProp( xRange, uno::UNO_QUERY );
- if (xProp.is())
- {
- long nRet = -1;
- uno::Any aTrans = xProp->getPropertyValue( L"IsCellBackgroundTransparent" );
- sal_Bool bIsTrans;
- aTrans >>= bIsTrans; //! dont use >>= for BOOL
- if (!bIsTrans)
- {
- uno::Any aCol = xProp->getPropertyValue( L"CellBackColor" );
- aCol >>= nRet;
- }
- return nRet;
- }
- return 0;
-}
-
-double lcl_GetDoubleElement( const uno::Sequence< uno::Sequence<double> >& aMatrix, long nCol, long nRow )
-{
- if ( nRow < aMatrix.getLength() )
- {
- const uno::Sequence<double>& rRowSeq = aMatrix.getConstArray()[nRow];
- if ( nCol < rRowSeq.getLength() )
- return rRowSeq.getConstArray()[nCol];
- }
- return 0.0; // error
-}
-
-INT32 lcl_GetLongElement( const uno::Sequence< uno::Sequence<INT32> >& aMatrix, long nCol, long nRow )
-{
- if ( nRow < aMatrix.getLength() )
- {
- const uno::Sequence<INT32>& rRowSeq = aMatrix.getConstArray()[nRow];
- if ( nCol < rRowSeq.getLength() )
- return rRowSeq.getConstArray()[nCol];
- }
- return 0.0; // error
-}
-
-::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< double > > SAL_CALL ScTestAddIn::transpose( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< double > >& aMatrix ) throw(::com::sun::star::uno::RuntimeException)
-{
- long nRowCount = aMatrix.getLength();
- long nColCount = 0;
- if ( nRowCount )
- nColCount = aMatrix.getConstArray()[0].getLength();
-
- uno::Sequence< uno::Sequence<double> > aRet( nColCount );
- for (long nCol=0; nCol<nColCount; nCol++)
- {
- uno::Sequence<double> aSubSeq(nRowCount);
- for (long nRow=0; nRow<nRowCount; nRow++)
- aSubSeq.getArray()[nRow] = lcl_GetDoubleElement( aMatrix, nCol, nRow );
-
- aRet.getArray()[nCol] = aSubSeq;
- }
-
- return aRet;
-}
-
-::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< sal_Int32 > > SAL_CALL ScTestAddIn::transposeInt( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< sal_Int32 > >& aMatrix ) throw(::com::sun::star::uno::RuntimeException)
-{
- long nRowCount = aMatrix.getLength();
- long nColCount = 0;
- if ( nRowCount )
- nColCount = aMatrix.getConstArray()[0].getLength();
-
- uno::Sequence< uno::Sequence<INT32> > aRet( nColCount );
- for (long nCol=0; nCol<nColCount; nCol++)
- {
- uno::Sequence<INT32> aSubSeq(nRowCount);
- for (long nRow=0; nRow<nRowCount; nRow++)
- aSubSeq.getArray()[nRow] = lcl_GetLongElement( aMatrix, nCol, nRow );
-
- aRet.getArray()[nCol] = aSubSeq;
- }
-
- return aRet;
-}
-
-::rtl::OUString SAL_CALL ScTestAddIn::repeatMultiple( sal_Int32 nCount, const ::com::sun::star::uno::Any& aFirst, const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& aFollow ) throw(::com::sun::star::uno::RuntimeException)
-{
- String aSeparator;
- if ( !aFirst.hasValue() ) // not specified
- aSeparator = ';';
- else
- {
- rtl::OUString aUStr;
- aFirst >>= aUStr;
- aSeparator = OUStringToString( aUStr, CHARSET_SYSTEM );
- }
-
- String aContent;
- long nContCount = aFollow.getLength();
- const uno::Any* pArr = aFollow.getConstArray();
- for (long nPos=0; nPos<nContCount; nPos++)
- {
- if ( nPos > 0 )
- aContent += ' ';
- rtl::OUString aUStr;
- pArr[nPos] >>= aUStr;
- aContent += OUStringToString( aUStr, CHARSET_SYSTEM );
- }
-
- String aRet;
-
- for (long i=0; i<nCount; i++)
- {
- if (i>0)
- aRet += aSeparator;
- aRet += aContent;
- }
-
- return StringToOUString(aRet, CHARSET_SYSTEM);
-}
-
-::com::sun::star::uno::Any SAL_CALL ScTestAddIn::getStrOrVal( sal_Int32 nFlag ) throw(::com::sun::star::uno::RuntimeException)
-{
- uno::Any aRet;
-
- //! Test
- if ( nFlag == 42 )
- {
- uno::Sequence<rtl::OUString> aInner(3);
- aInner.getArray()[0] = L"Bla";
- aInner.getArray()[1] = L"Fasel";
- aInner.getArray()[2] = L"Suelz";
- uno::Sequence< uno::Sequence<rtl::OUString> > aOuter( &aInner, 1 );
-
- aRet <<= aOuter;
- return aRet;
- }
- //! Test
-
- if ( nFlag )
- aRet <<= UString(L"This is a string.");
- else
- aRet <<= (INT32)42;
-
- return aRet;
-}
-
-::com::sun::star::uno::Reference< ::com::sun::star::sheet::XVolatileResult > SAL_CALL ScTestAddIn::callAsync( const ::rtl::OUString& aString ) throw(::com::sun::star::uno::RuntimeException)
-{
- String aStr = OUStringToString( aString, CHARSET_SYSTEM );
- char c = (char) aStr;
- if ( c >= '0' && c <= '9' )
- {
- if (!xNumResult.is())
- xNumResult = new ScAddInResult( "Num" );
- return xNumResult;
- }
- else
- {
- if (!xAlphaResult.is())
- xAlphaResult = new ScAddInResult( "Str" );
- return xAlphaResult;
- }
-}
-
-
-// XServiceName
-
-::rtl::OUString SAL_CALL ScTestAddIn::getServiceName( ) throw(::com::sun::star::uno::RuntimeException)
-{
- return SCTESTADDIN_SERVICE; // name of specific AddIn service
-}
-
-// XServiceInfo
-
-::rtl::OUString SAL_CALL ScTestAddIn::getImplementationName( ) throw(::com::sun::star::uno::RuntimeException)
-{
- return getImplementationName_Static();
-}
-
-sal_Bool SAL_CALL ScTestAddIn::supportsService( const ::rtl::OUString& ServiceName ) throw(::com::sun::star::uno::RuntimeException)
-{
- return ServiceName == SCADDIN_SERVICE ||
- ServiceName == SCTESTADDIN_SERVICE;
-}
-
-::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL ScTestAddIn::getSupportedServiceNames( ) throw(::com::sun::star::uno::RuntimeException)
-{
- return getSupportedServiceNames_Static();
-}
-
-//------------------------------------------------------------------------
-
-
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */