summaryrefslogtreecommitdiff
path: root/formula/source/ui/dlg/parawin.cxx
diff options
context:
space:
mode:
authorMarina Plakalovic <makkica@openoffice.org>2012-12-14 23:40:18 +0100
committerEike Rathke <erack@redhat.com>2012-12-15 21:42:39 +0100
commitf2cb873631b8b21b54a55beaba532f4bd616a9c6 (patch)
tree09c0fecd4bd9b265069dc512cd67db4674626220 /formula/source/ui/dlg/parawin.cxx
parentef54346f1912c635d74c7dee8703f5f46647881d (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.cxx45
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]);
}