diff options
author | Marina Plakalovic <makkica@openoffice.org> | 2012-12-14 23:40:18 +0100 |
---|---|---|
committer | Eike Rathke <erack@redhat.com> | 2012-12-15 21:42:39 +0100 |
commit | f2cb873631b8b21b54a55beaba532f4bd616a9c6 (patch) | |
tree | 09c0fecd4bd9b265069dc512cd67db4674626220 /formula/source/ui/dlg/parawin.cxx | |
parent | ef54346f1912c635d74c7dee8703f5f46647881d (diff) |
calcishmakkica: #i90269# #i95144# #i101466# implement SUMIFS, AVERAGEIFS, COUNTIFS
Merged from Apache OO with adaptions.
http://svn.apache.org/viewvc?rev=1381447&view=rev
Original Apache OO committer: Andrew Rist <arist@apache.org>
Original Author: Marina Plakalovic <makkica@openoffice.org>
Original Committer: Eike Rathke [er] <eike.rathke@oracle.com>
# HG changeset patch
# User Eike Rathke [er] <eike.rathke@oracle.com>
# Date 1288810126 -3600
# Node ID 02cf226fcde498f6fd926d45df497e9fb412fe0f
# Parent 528da6bfd0daed4355d745590d5ac3a319b08fb4
Change-Id: I08754653cd2ff20536ad3e9f260f747cb127ccdd
Diffstat (limited to 'formula/source/ui/dlg/parawin.cxx')
-rw-r--r-- | formula/source/ui/dlg/parawin.cxx | 45 |
1 files changed, 43 insertions, 2 deletions
diff --git a/formula/source/ui/dlg/parawin.cxx b/formula/source/ui/dlg/parawin.cxx index d51f4dcf4980..23d8ec862420 100644 --- a/formula/source/ui/dlg/parawin.cxx +++ b/formula/source/ui/dlg/parawin.cxx @@ -30,6 +30,7 @@ #include "ForResId.hrc" #define VAR_ARGS 30 +#define PAIRED_VAR_ARGS (VAR_ARGS + VAR_ARGS) namespace formula { //============================================================================ @@ -109,7 +110,7 @@ void ParaWin::UpdateArgDesc( sal_uInt16 nArg ) aArgName += ' '; aArgName += (pFuncDesc->isParameterOptional(nRealArg)) ? m_sOptional : m_sRequired ; } - else + else if ( nArgs < PAIRED_VAR_ARGS ) { sal_uInt16 nFix = nArgs - VAR_ARGS; sal_uInt16 nPos = ( nArg < nFix ? nArg : nFix ); @@ -123,6 +124,24 @@ void ParaWin::UpdateArgDesc( sal_uInt16 nArg ) aArgName += (nArg > nFix || pFuncDesc->isParameterOptional(nRealArg)) ? m_sOptional : m_sRequired ; } + else + { + sal_uInt16 nFix = nArgs - PAIRED_VAR_ARGS; + sal_uInt16 nPos; + if ( nArg < nFix ) + nPos = nArg; + else + nPos = nFix + ( (nArg-nFix) % 2); + sal_uInt16 nRealArg = (nPos < aVisibleArgMapping.size() ? + aVisibleArgMapping[nPos] : aVisibleArgMapping.back()); + aArgDesc = pFuncDesc->getParameterDescription(nRealArg); + aArgName = pFuncDesc->getParameterName(nRealArg); + if ( nArg >= nFix ) + aArgName += String::CreateFromInt32((nArg-nFix)/2 + 1); + aArgName += ' '; + + aArgName += (nArg > (nFix+1) || pFuncDesc->isParameterOptional(nRealArg)) ? m_sOptional : m_sRequired ; + } SetArgumentDesc(aArgDesc); SetArgumentText(aArgName); @@ -142,7 +161,7 @@ void ParaWin::UpdateArgInput( sal_uInt16 nOffset, sal_uInt16 i ) SetArgName (i,pFuncDesc->getParameterName(nRealArg)); } } - else + else if ( nArgs < PAIRED_VAR_ARGS) { sal_uInt16 nFix = nArgs - VAR_ARGS; sal_uInt16 nPos = ( nArg < nFix ? nArg : nFix ); @@ -160,6 +179,28 @@ void ParaWin::UpdateArgInput( sal_uInt16 nOffset, sal_uInt16 i ) else SetArgName( i, pFuncDesc->getParameterName(nRealArg) ); } + else + { + sal_uInt16 nFix = nArgs - PAIRED_VAR_ARGS; + sal_uInt16 nPos; + if ( nArg < nFix ) + nPos = nArg; + else + nPos = nFix + ( (nArg-nFix) % 2); + sal_uInt16 nRealArg = (nPos < aVisibleArgMapping.size() ? + aVisibleArgMapping[nPos] : aVisibleArgMapping.back()); + SetArgNameFont( i, + (nArg > (nFix+1) || pFuncDesc->isParameterOptional(nRealArg)) ? + aFntLight : aFntBold ); + if ( nArg >= nFix ) + { + String aArgName( pFuncDesc->getParameterName(nRealArg) ); + aArgName += String::CreateFromInt32((nArg-nFix)/2 + 1); + SetArgName( i, aArgName ); + } + else + SetArgName( i, pFuncDesc->getParameterName(nRealArg) ); + } if(nArg<nArgs) SetArgVal(i,aParaArray[nArg]); } |