2010-10-12 15:59:00 +02:00
|
|
|
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
2001-11-08 13:01:42 +00:00
|
|
|
/*************************************************************************
|
|
|
|
*
|
2008-04-10 18:45:02 +00:00
|
|
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
2001-11-08 13:01:42 +00:00
|
|
|
*
|
2010-02-12 15:01:35 +01:00
|
|
|
* Copyright 2000, 2010 Oracle and/or its affiliates.
|
2001-11-08 13:01:42 +00:00
|
|
|
*
|
2008-04-10 18:45:02 +00:00
|
|
|
* OpenOffice.org - a multi-platform office productivity suite
|
2001-11-08 13:01:42 +00:00
|
|
|
*
|
2008-04-10 18:45:02 +00:00
|
|
|
* This file is part of OpenOffice.org.
|
2001-11-08 13:01:42 +00:00
|
|
|
*
|
2008-04-10 18:45:02 +00:00
|
|
|
* 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.
|
2001-11-08 13:01:42 +00:00
|
|
|
*
|
2008-04-10 18:45:02 +00:00
|
|
|
* 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).
|
2001-11-08 13:01:42 +00:00
|
|
|
*
|
2008-04-10 18:45:02 +00:00
|
|
|
* 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.
|
2001-11-08 13:01:42 +00:00
|
|
|
*
|
|
|
|
************************************************************************/
|
|
|
|
|
2006-07-21 10:15:11 +00:00
|
|
|
|
2001-11-08 13:01:42 +00:00
|
|
|
#include "addinhelpid.hxx"
|
|
|
|
#include "sc.hrc"
|
|
|
|
|
2002-05-02 09:37:39 +00:00
|
|
|
// ============================================================================
|
2001-11-08 13:01:42 +00:00
|
|
|
|
2002-05-02 09:37:39 +00:00
|
|
|
// A struct containing the built-in function name and the built-in help ID.
|
2001-11-08 13:01:42 +00:00
|
|
|
struct ScUnoAddInHelpId
|
|
|
|
{
|
|
|
|
const sal_Char* pFuncName;
|
2010-07-10 18:21:24 +02:00
|
|
|
const sal_Char* sHelpId;
|
2001-11-08 13:01:42 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
|
2002-05-02 09:37:39 +00:00
|
|
|
// ----------------------------------------------------------------------------
|
|
|
|
|
|
|
|
// Help IDs for Analysis AddIn. MUST BE SORTED for binary search.
|
2001-11-08 13:01:42 +00:00
|
|
|
const ScUnoAddInHelpId pAnalysisHelpIds[] =
|
|
|
|
{
|
|
|
|
{ "getAccrint" , HID_AAI_FUNC_ACCRINT },
|
|
|
|
{ "getAccrintm" , HID_AAI_FUNC_ACCRINTM },
|
|
|
|
{ "getAmordegrc" , HID_AAI_FUNC_AMORDEGRC },
|
|
|
|
{ "getAmorlinc" , HID_AAI_FUNC_AMORLINC },
|
|
|
|
{ "getBesseli" , HID_AAI_FUNC_BESSELI },
|
|
|
|
{ "getBesselj" , HID_AAI_FUNC_BESSELJ },
|
|
|
|
{ "getBesselk" , HID_AAI_FUNC_BESSELK },
|
|
|
|
{ "getBessely" , HID_AAI_FUNC_BESSELY },
|
|
|
|
{ "getBin2Dec" , HID_AAI_FUNC_BIN2DEC },
|
|
|
|
{ "getBin2Hex" , HID_AAI_FUNC_BIN2HEX },
|
|
|
|
{ "getBin2Oct" , HID_AAI_FUNC_BIN2OCT },
|
|
|
|
{ "getComplex" , HID_AAI_FUNC_COMPLEX },
|
|
|
|
{ "getConvert" , HID_AAI_FUNC_CONVERT },
|
|
|
|
{ "getCoupdaybs" , HID_AAI_FUNC_COUPDAYBS },
|
|
|
|
{ "getCoupdays" , HID_AAI_FUNC_COUPDAYS },
|
|
|
|
{ "getCoupdaysnc" , HID_AAI_FUNC_COUPDAYSNC },
|
|
|
|
{ "getCoupncd" , HID_AAI_FUNC_COUPNCD },
|
|
|
|
{ "getCoupnum" , HID_AAI_FUNC_COUPNUM },
|
|
|
|
{ "getCouppcd" , HID_AAI_FUNC_COUPPCD },
|
|
|
|
{ "getCumipmt" , HID_AAI_FUNC_CUMIPMT },
|
|
|
|
{ "getCumprinc" , HID_AAI_FUNC_CUMPRINC },
|
|
|
|
{ "getDec2Bin" , HID_AAI_FUNC_DEC2BIN },
|
|
|
|
{ "getDec2Hex" , HID_AAI_FUNC_DEC2HEX },
|
|
|
|
{ "getDec2Oct" , HID_AAI_FUNC_DEC2OCT },
|
|
|
|
{ "getDelta" , HID_AAI_FUNC_DELTA },
|
|
|
|
{ "getDisc" , HID_AAI_FUNC_DISC },
|
|
|
|
{ "getDollarde" , HID_AAI_FUNC_DOLLARDE },
|
|
|
|
{ "getDollarfr" , HID_AAI_FUNC_DOLLARFR },
|
|
|
|
{ "getDuration" , HID_AAI_FUNC_DURATION },
|
|
|
|
{ "getEdate" , HID_AAI_FUNC_EDATE },
|
|
|
|
{ "getEffect" , HID_AAI_FUNC_EFFECT },
|
|
|
|
{ "getEomonth" , HID_AAI_FUNC_EOMONTH },
|
|
|
|
{ "getErf" , HID_AAI_FUNC_ERF },
|
|
|
|
{ "getErfc" , HID_AAI_FUNC_ERFC },
|
|
|
|
{ "getFactdouble" , HID_AAI_FUNC_FACTDOUBLE },
|
|
|
|
{ "getFvschedule" , HID_AAI_FUNC_FVSCHEDULE },
|
|
|
|
{ "getGcd" , HID_AAI_FUNC_GCD },
|
|
|
|
{ "getGestep" , HID_AAI_FUNC_GESTEP },
|
|
|
|
{ "getHex2Bin" , HID_AAI_FUNC_HEX2BIN },
|
|
|
|
{ "getHex2Dec" , HID_AAI_FUNC_HEX2DEC },
|
|
|
|
{ "getHex2Oct" , HID_AAI_FUNC_HEX2OCT },
|
|
|
|
{ "getImabs" , HID_AAI_FUNC_IMABS },
|
|
|
|
{ "getImaginary" , HID_AAI_FUNC_IMAGINARY },
|
|
|
|
{ "getImargument" , HID_AAI_FUNC_IMARGUMENT },
|
|
|
|
{ "getImconjugate" , HID_AAI_FUNC_IMCONJUGATE },
|
|
|
|
{ "getImcos" , HID_AAI_FUNC_IMCOS },
|
2012-06-09 17:34:38 +02:00
|
|
|
{ "getImcosh" , HID_AAI_FUNC_IMCOSH },
|
|
|
|
{ "getImcot" , HID_AAI_FUNC_IMCOT },
|
|
|
|
{ "getImcsc" , HID_AAI_FUNC_IMCSC },
|
|
|
|
{ "getImcsch" , HID_AAI_FUNC_IMCSCH },
|
2001-11-08 13:01:42 +00:00
|
|
|
{ "getImdiv" , HID_AAI_FUNC_IMDIV },
|
|
|
|
{ "getImexp" , HID_AAI_FUNC_IMEXP },
|
|
|
|
{ "getImln" , HID_AAI_FUNC_IMLN },
|
|
|
|
{ "getImlog10" , HID_AAI_FUNC_IMLOG10 },
|
|
|
|
{ "getImlog2" , HID_AAI_FUNC_IMLOG2 },
|
|
|
|
{ "getImpower" , HID_AAI_FUNC_IMPOWER },
|
|
|
|
{ "getImproduct" , HID_AAI_FUNC_IMPRODUCT },
|
|
|
|
{ "getImreal" , HID_AAI_FUNC_IMREAL },
|
2012-06-09 17:34:38 +02:00
|
|
|
{ "getImsec" , HID_AAI_FUNC_IMSEC },
|
|
|
|
{ "getImsech" , HID_AAI_FUNC_IMSECH },
|
2001-11-08 13:01:42 +00:00
|
|
|
{ "getImsin" , HID_AAI_FUNC_IMSIN },
|
2012-06-09 17:34:38 +02:00
|
|
|
{ "getImsinh" , HID_AAI_FUNC_IMSINH },
|
2001-11-08 13:01:42 +00:00
|
|
|
{ "getImsqrt" , HID_AAI_FUNC_IMSQRT },
|
|
|
|
{ "getImsub" , HID_AAI_FUNC_IMSUB },
|
|
|
|
{ "getImsum" , HID_AAI_FUNC_IMSUM },
|
2012-06-09 17:34:38 +02:00
|
|
|
{ "getImtan" , HID_AAI_FUNC_IMTAN },
|
2001-11-08 13:01:42 +00:00
|
|
|
{ "getIntrate" , HID_AAI_FUNC_INTRATE },
|
|
|
|
{ "getIseven" , HID_AAI_FUNC_ISEVEN },
|
|
|
|
{ "getIsodd" , HID_AAI_FUNC_ISODD },
|
|
|
|
{ "getLcm" , HID_AAI_FUNC_LCM },
|
|
|
|
{ "getMduration" , HID_AAI_FUNC_MDURATION },
|
|
|
|
{ "getMround" , HID_AAI_FUNC_MROUND },
|
|
|
|
{ "getMultinomial" , HID_AAI_FUNC_MULTINOMIAL },
|
|
|
|
{ "getNetworkdays" , HID_AAI_FUNC_NETWORKDAYS },
|
|
|
|
{ "getNominal" , HID_AAI_FUNC_NOMINAL },
|
|
|
|
{ "getOct2Bin" , HID_AAI_FUNC_OCT2BIN },
|
|
|
|
{ "getOct2Dec" , HID_AAI_FUNC_OCT2DEZ },
|
|
|
|
{ "getOct2Hex" , HID_AAI_FUNC_OCT2HEX },
|
|
|
|
{ "getOddfprice" , HID_AAI_FUNC_ODDFPRICE },
|
|
|
|
{ "getOddfyield" , HID_AAI_FUNC_ODDFYIELD },
|
|
|
|
{ "getOddlprice" , HID_AAI_FUNC_ODDLPRICE },
|
|
|
|
{ "getOddlyield" , HID_AAI_FUNC_ODDLYIELD },
|
|
|
|
{ "getPrice" , HID_AAI_FUNC_PRICE },
|
|
|
|
{ "getPricedisc" , HID_AAI_FUNC_PRICEDISC },
|
|
|
|
{ "getPricemat" , HID_AAI_FUNC_PRICEMAT },
|
|
|
|
{ "getQuotient" , HID_AAI_FUNC_QUOTIENT },
|
|
|
|
{ "getRandbetween" , HID_AAI_FUNC_RANDBETWEEN },
|
|
|
|
{ "getReceived" , HID_AAI_FUNC_RECEIVED },
|
|
|
|
{ "getSeriessum" , HID_AAI_FUNC_SERIESSUM },
|
|
|
|
{ "getSqrtpi" , HID_AAI_FUNC_SQRTPI },
|
|
|
|
{ "getTbilleq" , HID_AAI_FUNC_TBILLEQ },
|
|
|
|
{ "getTbillprice" , HID_AAI_FUNC_TBILLPRICE },
|
|
|
|
{ "getTbillyield" , HID_AAI_FUNC_TBILLYIELD },
|
|
|
|
{ "getWeeknum" , HID_AAI_FUNC_WEEKNUM },
|
|
|
|
{ "getWorkday" , HID_AAI_FUNC_WORKDAY },
|
|
|
|
{ "getXirr" , HID_AAI_FUNC_XIRR },
|
|
|
|
{ "getXnpv" , HID_AAI_FUNC_XNPV },
|
|
|
|
{ "getYearfrac" , HID_AAI_FUNC_YEARFRAC },
|
|
|
|
{ "getYield" , HID_AAI_FUNC_YIELD },
|
|
|
|
{ "getYielddisc" , HID_AAI_FUNC_YIELDDISC },
|
|
|
|
{ "getYieldmat" , HID_AAI_FUNC_YIELDMAT }
|
|
|
|
};
|
|
|
|
|
2002-05-02 09:37:39 +00:00
|
|
|
|
|
|
|
// ----------------------------------------------------------------------------
|
|
|
|
|
|
|
|
// Help IDs for DateFunc AddIn. MUST BE SORTED for binary search.
|
|
|
|
const ScUnoAddInHelpId pDateFuncHelpIds[] =
|
|
|
|
{
|
|
|
|
{ "getDaysInMonth" , HID_DAI_FUNC_DAYSINMONTH },
|
|
|
|
{ "getDaysInYear" , HID_DAI_FUNC_DAYSINYEAR },
|
|
|
|
{ "getDiffMonths" , HID_DAI_FUNC_DIFFMONTHS },
|
|
|
|
{ "getDiffWeeks" , HID_DAI_FUNC_DIFFWEEKS },
|
|
|
|
{ "getDiffYears" , HID_DAI_FUNC_DIFFYEARS },
|
|
|
|
{ "getRot13" , HID_DAI_FUNC_ROT13 },
|
|
|
|
{ "getWeeksInYear" , HID_DAI_FUNC_WEEKSINYEAR }
|
|
|
|
};
|
2001-11-08 13:01:42 +00:00
|
|
|
|
|
|
|
|
2002-05-02 09:37:39 +00:00
|
|
|
// ============================================================================
|
2001-11-08 13:01:42 +00:00
|
|
|
|
|
|
|
|
2002-05-02 09:37:39 +00:00
|
|
|
ScUnoAddInHelpIdGenerator::ScUnoAddInHelpIdGenerator( const ::rtl::OUString& rServiceName )
|
2001-11-08 13:01:42 +00:00
|
|
|
{
|
|
|
|
SetServiceName( rServiceName );
|
|
|
|
}
|
|
|
|
|
2002-05-02 09:37:39 +00:00
|
|
|
void ScUnoAddInHelpIdGenerator::SetServiceName( const ::rtl::OUString& rServiceName )
|
2001-11-08 13:01:42 +00:00
|
|
|
{
|
|
|
|
pCurrHelpIds = NULL;
|
|
|
|
sal_uInt32 nSize = 0;
|
|
|
|
|
2012-04-06 14:28:18 +02:00
|
|
|
if ( rServiceName == "com.sun.star.sheet.addin.Analysis" )
|
2001-11-08 13:01:42 +00:00
|
|
|
{
|
|
|
|
pCurrHelpIds = pAnalysisHelpIds;
|
|
|
|
nSize = sizeof( pAnalysisHelpIds );
|
|
|
|
}
|
2012-04-06 14:28:18 +02:00
|
|
|
else if ( rServiceName == "com.sun.star.sheet.addin.DateFunctions" )
|
2002-05-02 09:37:39 +00:00
|
|
|
{
|
|
|
|
pCurrHelpIds = pDateFuncHelpIds;
|
|
|
|
nSize = sizeof( pDateFuncHelpIds );
|
|
|
|
}
|
2001-11-08 13:01:42 +00:00
|
|
|
|
|
|
|
nArrayCount = nSize / sizeof( ScUnoAddInHelpId );
|
|
|
|
}
|
|
|
|
|
2010-07-10 18:21:24 +02:00
|
|
|
rtl::OString ScUnoAddInHelpIdGenerator::GetHelpId( const ::rtl::OUString& rFuncName ) const
|
2001-11-08 13:01:42 +00:00
|
|
|
{
|
|
|
|
if( !pCurrHelpIds || !nArrayCount )
|
2010-07-10 18:21:24 +02:00
|
|
|
return rtl::OString();
|
2001-11-08 13:01:42 +00:00
|
|
|
|
|
|
|
const ScUnoAddInHelpId* pFirst = pCurrHelpIds;
|
|
|
|
const ScUnoAddInHelpId* pLast = pCurrHelpIds + nArrayCount - 1;
|
|
|
|
|
|
|
|
while( pFirst <= pLast )
|
|
|
|
{
|
|
|
|
const ScUnoAddInHelpId* pMiddle = pFirst + (pLast - pFirst) / 2;
|
|
|
|
sal_Int32 nResult = rFuncName.compareToAscii( pMiddle->pFuncName );
|
|
|
|
if( !nResult )
|
2010-07-10 18:21:24 +02:00
|
|
|
return pMiddle->sHelpId;
|
2001-11-08 13:01:42 +00:00
|
|
|
else if( nResult < 0 )
|
|
|
|
pLast = pMiddle - 1;
|
|
|
|
else
|
|
|
|
pFirst = pMiddle + 1;
|
|
|
|
}
|
|
|
|
|
2010-07-10 18:21:24 +02:00
|
|
|
return rtl::OString();
|
2001-11-08 13:01:42 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
2002-05-02 09:37:39 +00:00
|
|
|
// ============================================================================
|
2001-11-08 13:01:42 +00:00
|
|
|
|
2010-10-12 15:59:00 +02:00
|
|
|
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|