xref: /aoo4110/main/sw/source/core/attr/hints.cxx (revision b1cdbd2c)
1*b1cdbd2cSJim Jagielski /**************************************************************
2*b1cdbd2cSJim Jagielski  *
3*b1cdbd2cSJim Jagielski  * Licensed to the Apache Software Foundation (ASF) under one
4*b1cdbd2cSJim Jagielski  * or more contributor license agreements.  See the NOTICE file
5*b1cdbd2cSJim Jagielski  * distributed with this work for additional information
6*b1cdbd2cSJim Jagielski  * regarding copyright ownership.  The ASF licenses this file
7*b1cdbd2cSJim Jagielski  * to you under the Apache License, Version 2.0 (the
8*b1cdbd2cSJim Jagielski  * "License"); you may not use this file except in compliance
9*b1cdbd2cSJim Jagielski  * with the License.  You may obtain a copy of the License at
10*b1cdbd2cSJim Jagielski  *
11*b1cdbd2cSJim Jagielski  *   http://www.apache.org/licenses/LICENSE-2.0
12*b1cdbd2cSJim Jagielski  *
13*b1cdbd2cSJim Jagielski  * Unless required by applicable law or agreed to in writing,
14*b1cdbd2cSJim Jagielski  * software distributed under the License is distributed on an
15*b1cdbd2cSJim Jagielski  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*b1cdbd2cSJim Jagielski  * KIND, either express or implied.  See the License for the
17*b1cdbd2cSJim Jagielski  * specific language governing permissions and limitations
18*b1cdbd2cSJim Jagielski  * under the License.
19*b1cdbd2cSJim Jagielski  *
20*b1cdbd2cSJim Jagielski  *************************************************************/
21*b1cdbd2cSJim Jagielski 
22*b1cdbd2cSJim Jagielski 
23*b1cdbd2cSJim Jagielski 
24*b1cdbd2cSJim Jagielski // MARKER(update_precomp.py): autogen include statement, do not remove
25*b1cdbd2cSJim Jagielski #include "precompiled_sw.hxx"
26*b1cdbd2cSJim Jagielski #include <hints.hxx>
27*b1cdbd2cSJim Jagielski 
28*b1cdbd2cSJim Jagielski #ifndef _COM_SUN_STAR_I18N_SCRIPTTYPE_HDL_
29*b1cdbd2cSJim Jagielski #include <com/sun/star/i18n/ScriptType.hdl>
30*b1cdbd2cSJim Jagielski #endif
31*b1cdbd2cSJim Jagielski #include <editeng/scripttypeitem.hxx>
32*b1cdbd2cSJim Jagielski #include <hintids.hxx>
33*b1cdbd2cSJim Jagielski #include <swtypes.hxx>
34*b1cdbd2cSJim Jagielski #include <ndtxt.hxx>
35*b1cdbd2cSJim Jagielski #include <errhdl.hxx>
36*b1cdbd2cSJim Jagielski 
SwFmtChg(SwFmt * pFmt)37*b1cdbd2cSJim Jagielski SwFmtChg::SwFmtChg( SwFmt *pFmt )
38*b1cdbd2cSJim Jagielski 	: SwMsgPoolItem( RES_FMT_CHG ),
39*b1cdbd2cSJim Jagielski 	pChangedFmt( pFmt )
40*b1cdbd2cSJim Jagielski {}
41*b1cdbd2cSJim Jagielski 
42*b1cdbd2cSJim Jagielski 
43*b1cdbd2cSJim Jagielski 
SwInsTxt(xub_StrLen nP,xub_StrLen nL)44*b1cdbd2cSJim Jagielski SwInsTxt::SwInsTxt( xub_StrLen nP, xub_StrLen nL )
45*b1cdbd2cSJim Jagielski 	: SwMsgPoolItem( RES_INS_TXT ),
46*b1cdbd2cSJim Jagielski 	nPos( nP ),
47*b1cdbd2cSJim Jagielski 	nLen( nL )
48*b1cdbd2cSJim Jagielski {}
49*b1cdbd2cSJim Jagielski 
50*b1cdbd2cSJim Jagielski 
51*b1cdbd2cSJim Jagielski 
SwDelChr(xub_StrLen nP)52*b1cdbd2cSJim Jagielski SwDelChr::SwDelChr( xub_StrLen nP )
53*b1cdbd2cSJim Jagielski 	: SwMsgPoolItem( RES_DEL_CHR ),
54*b1cdbd2cSJim Jagielski 	nPos( nP )
55*b1cdbd2cSJim Jagielski {}
56*b1cdbd2cSJim Jagielski 
57*b1cdbd2cSJim Jagielski 
58*b1cdbd2cSJim Jagielski 
SwDelTxt(xub_StrLen nS,xub_StrLen nL)59*b1cdbd2cSJim Jagielski SwDelTxt::SwDelTxt( xub_StrLen nS, xub_StrLen nL )
60*b1cdbd2cSJim Jagielski 	: SwMsgPoolItem( RES_DEL_TXT ),
61*b1cdbd2cSJim Jagielski 	nStart( nS ),
62*b1cdbd2cSJim Jagielski 	nLen( nL )
63*b1cdbd2cSJim Jagielski {}
64*b1cdbd2cSJim Jagielski 
65*b1cdbd2cSJim Jagielski 
66*b1cdbd2cSJim Jagielski 
SwUpdateAttr(xub_StrLen nS,xub_StrLen nE,sal_uInt16 nW)67*b1cdbd2cSJim Jagielski SwUpdateAttr::SwUpdateAttr( xub_StrLen nS, xub_StrLen nE, sal_uInt16 nW )
68*b1cdbd2cSJim Jagielski 	: SwMsgPoolItem( RES_UPDATE_ATTR ),
69*b1cdbd2cSJim Jagielski 	nStart( nS ),
70*b1cdbd2cSJim Jagielski 	nEnd( nE ),
71*b1cdbd2cSJim Jagielski 	nWhichAttr( nW )
72*b1cdbd2cSJim Jagielski {}
73*b1cdbd2cSJim Jagielski 
74*b1cdbd2cSJim Jagielski 
75*b1cdbd2cSJim Jagielski // SwRefMarkFldUpdate wird verschickt, wenn sich die ReferenzMarkierungen
76*b1cdbd2cSJim Jagielski // Updaten sollen. Um Seiten-/KapitelNummer feststellen zu koennen, muss
77*b1cdbd2cSJim Jagielski // der akt. Frame befragt werden. Dafuer wird das akt. OutputDevice benoetigt.
78*b1cdbd2cSJim Jagielski 
79*b1cdbd2cSJim Jagielski 
SwRefMarkFldUpdate(const OutputDevice * pOutput)80*b1cdbd2cSJim Jagielski SwRefMarkFldUpdate::SwRefMarkFldUpdate( const OutputDevice* pOutput )
81*b1cdbd2cSJim Jagielski 	: SwMsgPoolItem( RES_REFMARKFLD_UPDATE ),
82*b1cdbd2cSJim Jagielski 	pOut( pOutput )
83*b1cdbd2cSJim Jagielski {
84*b1cdbd2cSJim Jagielski 	ASSERT( pOut, "es muss ein OutputDevice-Pointer gesetzt werden!" );
85*b1cdbd2cSJim Jagielski }
86*b1cdbd2cSJim Jagielski 
87*b1cdbd2cSJim Jagielski 
SwDocPosUpdate(const SwTwips nDcPos)88*b1cdbd2cSJim Jagielski SwDocPosUpdate::SwDocPosUpdate( const SwTwips nDcPos )
89*b1cdbd2cSJim Jagielski 	: SwMsgPoolItem( RES_DOCPOS_UPDATE ),
90*b1cdbd2cSJim Jagielski 	nDocPos(nDcPos)
91*b1cdbd2cSJim Jagielski {}
92*b1cdbd2cSJim Jagielski 
93*b1cdbd2cSJim Jagielski 
94*b1cdbd2cSJim Jagielski 
95*b1cdbd2cSJim Jagielski // SwTableFmlUpdate wird verschickt, wenn sich die Tabelle neu berechnen soll
SwTableFmlUpdate(const SwTable * pNewTbl)96*b1cdbd2cSJim Jagielski SwTableFmlUpdate::SwTableFmlUpdate( const SwTable* pNewTbl )
97*b1cdbd2cSJim Jagielski 	: SwMsgPoolItem( RES_TABLEFML_UPDATE ),
98*b1cdbd2cSJim Jagielski 	pTbl( pNewTbl ), pHistory( 0 ), nSplitLine( USHRT_MAX ),
99*b1cdbd2cSJim Jagielski 	eFlags( TBL_CALC )
100*b1cdbd2cSJim Jagielski {
101*b1cdbd2cSJim Jagielski 	DATA.pDelTbl = 0;
102*b1cdbd2cSJim Jagielski 	bModified = bBehindSplitLine = sal_False;
103*b1cdbd2cSJim Jagielski 	ASSERT( pTbl, "es muss ein Table-Pointer gesetzt werden!" );
104*b1cdbd2cSJim Jagielski }
105*b1cdbd2cSJim Jagielski 
106*b1cdbd2cSJim Jagielski 
SwAutoFmtGetDocNode(const SwNodes * pNds)107*b1cdbd2cSJim Jagielski SwAutoFmtGetDocNode::SwAutoFmtGetDocNode( const SwNodes* pNds )
108*b1cdbd2cSJim Jagielski 	: SwMsgPoolItem( RES_AUTOFMT_DOCNODE ),
109*b1cdbd2cSJim Jagielski 	pCntntNode( 0 ), pNodes( pNds )
110*b1cdbd2cSJim Jagielski {}
111*b1cdbd2cSJim Jagielski 
112*b1cdbd2cSJim Jagielski 
SwAttrSetChg(const SwAttrSet & rTheSet,SwAttrSet & rSet)113*b1cdbd2cSJim Jagielski SwAttrSetChg::SwAttrSetChg( const SwAttrSet& rTheSet, SwAttrSet& rSet )
114*b1cdbd2cSJim Jagielski 	: SwMsgPoolItem( RES_ATTRSET_CHG ),
115*b1cdbd2cSJim Jagielski 	bDelSet( sal_False ),
116*b1cdbd2cSJim Jagielski 	pChgSet( &rSet ),
117*b1cdbd2cSJim Jagielski 	pTheChgdSet( &rTheSet )
118*b1cdbd2cSJim Jagielski {}
119*b1cdbd2cSJim Jagielski 
120*b1cdbd2cSJim Jagielski 
SwAttrSetChg(const SwAttrSetChg & rChgSet)121*b1cdbd2cSJim Jagielski SwAttrSetChg::SwAttrSetChg( const SwAttrSetChg& rChgSet )
122*b1cdbd2cSJim Jagielski 	: SwMsgPoolItem( RES_ATTRSET_CHG ),
123*b1cdbd2cSJim Jagielski 	bDelSet( sal_True ),
124*b1cdbd2cSJim Jagielski 	pTheChgdSet( rChgSet.pTheChgdSet )
125*b1cdbd2cSJim Jagielski {
126*b1cdbd2cSJim Jagielski 	pChgSet = new SwAttrSet( *rChgSet.pChgSet );
127*b1cdbd2cSJim Jagielski }
128*b1cdbd2cSJim Jagielski 
129*b1cdbd2cSJim Jagielski 
~SwAttrSetChg()130*b1cdbd2cSJim Jagielski SwAttrSetChg::~SwAttrSetChg()
131*b1cdbd2cSJim Jagielski {
132*b1cdbd2cSJim Jagielski 	if( bDelSet )
133*b1cdbd2cSJim Jagielski 		delete pChgSet;
134*b1cdbd2cSJim Jagielski }
135*b1cdbd2cSJim Jagielski 
136*b1cdbd2cSJim Jagielski 
137*b1cdbd2cSJim Jagielski #ifdef DBG_UTIL
138*b1cdbd2cSJim Jagielski 
ClearItem(sal_uInt16 nWhch)139*b1cdbd2cSJim Jagielski void SwAttrSetChg::ClearItem( sal_uInt16 nWhch )
140*b1cdbd2cSJim Jagielski {
141*b1cdbd2cSJim Jagielski 	ASSERT( bDelSet, "der Set darf nicht veraendert werden!" );
142*b1cdbd2cSJim Jagielski 	pChgSet->ClearItem( nWhch );
143*b1cdbd2cSJim Jagielski }
144*b1cdbd2cSJim Jagielski 
145*b1cdbd2cSJim Jagielski #endif
146*b1cdbd2cSJim Jagielski 
147*b1cdbd2cSJim Jagielski 
SwMsgPoolItem(sal_uInt16 nWhch)148*b1cdbd2cSJim Jagielski SwMsgPoolItem::SwMsgPoolItem( sal_uInt16 nWhch )
149*b1cdbd2cSJim Jagielski 	: SfxPoolItem( nWhch )
150*b1cdbd2cSJim Jagielski {}
151*b1cdbd2cSJim Jagielski 
152*b1cdbd2cSJim Jagielski 
153*b1cdbd2cSJim Jagielski // "Overhead" vom SfxPoolItem
operator ==(const SfxPoolItem &) const154*b1cdbd2cSJim Jagielski int SwMsgPoolItem::operator==( const SfxPoolItem& ) const
155*b1cdbd2cSJim Jagielski {
156*b1cdbd2cSJim Jagielski 	ASSERT( sal_False, "SwMsgPoolItem kennt kein ==" );
157*b1cdbd2cSJim Jagielski 	return 0;
158*b1cdbd2cSJim Jagielski }
159*b1cdbd2cSJim Jagielski 
160*b1cdbd2cSJim Jagielski 
Clone(SfxItemPool *) const161*b1cdbd2cSJim Jagielski SfxPoolItem* SwMsgPoolItem::Clone( SfxItemPool* ) const
162*b1cdbd2cSJim Jagielski {
163*b1cdbd2cSJim Jagielski 	ASSERT( sal_False, "SwMsgPoolItem kennt kein Clone" );
164*b1cdbd2cSJim Jagielski 	return 0;
165*b1cdbd2cSJim Jagielski }
166*b1cdbd2cSJim Jagielski 
167*b1cdbd2cSJim Jagielski /******************************************************************************
168*b1cdbd2cSJim Jagielski  * hole aus der Default-Attribut Tabelle ueber den Which-Wert
169*b1cdbd2cSJim Jagielski  * das entsprechende default Attribut.
170*b1cdbd2cSJim Jagielski  * Ist keines vorhanden, returnt ein 0-Pointer !!!
171*b1cdbd2cSJim Jagielski  * Used to be inlined (hintids.hxx) in PRODUCT.
172*b1cdbd2cSJim Jagielski  ******************************************************************************/
173*b1cdbd2cSJim Jagielski #ifndef DBG_UTIL
GetDfltAttr(sal_uInt16 nWhich)174*b1cdbd2cSJim Jagielski const SfxPoolItem* GetDfltAttr( sal_uInt16 nWhich )
175*b1cdbd2cSJim Jagielski {
176*b1cdbd2cSJim Jagielski 	return aAttrTab[ nWhich - POOLATTR_BEGIN ];
177*b1cdbd2cSJim Jagielski }
178*b1cdbd2cSJim Jagielski #else
GetDfltAttr(sal_uInt16 nWhich)179*b1cdbd2cSJim Jagielski const SfxPoolItem* GetDfltAttr( sal_uInt16 nWhich )
180*b1cdbd2cSJim Jagielski {
181*b1cdbd2cSJim Jagielski 	ASSERT_ID( nWhich < POOLATTR_END && nWhich >= POOLATTR_BEGIN,
182*b1cdbd2cSJim Jagielski 			   ERR_OUTOFSCOPE );
183*b1cdbd2cSJim Jagielski 
184*b1cdbd2cSJim Jagielski 	SfxPoolItem *pHt = aAttrTab[ nWhich - POOLATTR_BEGIN ];
185*b1cdbd2cSJim Jagielski 	ASSERT( pHt, "GetDfltFmtAttr(): Dflt == 0" );
186*b1cdbd2cSJim Jagielski 	return pHt;
187*b1cdbd2cSJim Jagielski }
188*b1cdbd2cSJim Jagielski #endif
189*b1cdbd2cSJim Jagielski 
190*b1cdbd2cSJim Jagielski 
191*b1cdbd2cSJim Jagielski 
SwCondCollCondChg(SwFmt * pFmt)192*b1cdbd2cSJim Jagielski SwCondCollCondChg::SwCondCollCondChg( SwFmt *pFmt )
193*b1cdbd2cSJim Jagielski 	: SwMsgPoolItem( RES_CONDCOLL_CONDCHG ), pChangedFmt( pFmt )
194*b1cdbd2cSJim Jagielski {
195*b1cdbd2cSJim Jagielski }
196*b1cdbd2cSJim Jagielski 
197*b1cdbd2cSJim Jagielski 
SwVirtPageNumInfo(const SwPageFrm * pPg)198*b1cdbd2cSJim Jagielski SwVirtPageNumInfo::SwVirtPageNumInfo( const SwPageFrm *pPg ) :
199*b1cdbd2cSJim Jagielski 	SwMsgPoolItem( RES_VIRTPAGENUM_INFO ),
200*b1cdbd2cSJim Jagielski 	pPage( 0 ),
201*b1cdbd2cSJim Jagielski 	pOrigPage( pPg ),
202*b1cdbd2cSJim Jagielski 	pFrm( 0 )
203*b1cdbd2cSJim Jagielski {
204*b1cdbd2cSJim Jagielski }
205*b1cdbd2cSJim Jagielski 
206*b1cdbd2cSJim Jagielski // --> OD 2008-02-19 #refactorlists#
207*b1cdbd2cSJim Jagielski //SwNumRuleInfo::SwNumRuleInfo( const String& rRuleName )
208*b1cdbd2cSJim Jagielski //    : SwMsgPoolItem( RES_GETNUMNODES ), rName( rRuleName )
209*b1cdbd2cSJim Jagielski //{
210*b1cdbd2cSJim Jagielski //}
211*b1cdbd2cSJim Jagielski 
212*b1cdbd2cSJim Jagielski //void SwNumRuleInfo::AddNode( SwTxtNode& rNd )
213*b1cdbd2cSJim Jagielski //{
214*b1cdbd2cSJim Jagielski //    aList.Insert(rNd.GetIndex(), &rNd);
215*b1cdbd2cSJim Jagielski //}
216*b1cdbd2cSJim Jagielski 
217*b1cdbd2cSJim Jagielski 
SwFindNearestNode(const SwNode & rNd)218*b1cdbd2cSJim Jagielski SwFindNearestNode::SwFindNearestNode( const SwNode& rNd )
219*b1cdbd2cSJim Jagielski 	: SwMsgPoolItem( RES_FINDNEARESTNODE ), pNd( &rNd ), pFnd( 0 )
220*b1cdbd2cSJim Jagielski {
221*b1cdbd2cSJim Jagielski }
222*b1cdbd2cSJim Jagielski 
CheckNode(const SwNode & rNd)223*b1cdbd2cSJim Jagielski void SwFindNearestNode::CheckNode( const SwNode& rNd )
224*b1cdbd2cSJim Jagielski {
225*b1cdbd2cSJim Jagielski 	if( &pNd->GetNodes() == &rNd.GetNodes() )
226*b1cdbd2cSJim Jagielski 	{
227*b1cdbd2cSJim Jagielski 		sal_uLong nIdx = rNd.GetIndex();
228*b1cdbd2cSJim Jagielski 		if( nIdx < pNd->GetIndex() &&
229*b1cdbd2cSJim Jagielski 			( !pFnd || nIdx > pFnd->GetIndex() ) &&
230*b1cdbd2cSJim Jagielski 			nIdx > rNd.GetNodes().GetEndOfExtras().GetIndex() )
231*b1cdbd2cSJim Jagielski 			pFnd = &rNd;
232*b1cdbd2cSJim Jagielski 	}
233*b1cdbd2cSJim Jagielski }
234*b1cdbd2cSJim Jagielski 
235*b1cdbd2cSJim Jagielski 
236*b1cdbd2cSJim Jagielski 
GetWhichOfScript(sal_uInt16 nWhich,sal_uInt16 nScript)237*b1cdbd2cSJim Jagielski sal_uInt16 GetWhichOfScript( sal_uInt16 nWhich, sal_uInt16 nScript )
238*b1cdbd2cSJim Jagielski {
239*b1cdbd2cSJim Jagielski 	static const sal_uInt16 aLangMap[3] =
240*b1cdbd2cSJim Jagielski 		{ RES_CHRATR_LANGUAGE, RES_CHRATR_CJK_LANGUAGE, RES_CHRATR_CTL_LANGUAGE };
241*b1cdbd2cSJim Jagielski 	static const sal_uInt16 aFontMap[3] =
242*b1cdbd2cSJim Jagielski 		{ RES_CHRATR_FONT, RES_CHRATR_CJK_FONT,  RES_CHRATR_CTL_FONT};
243*b1cdbd2cSJim Jagielski 	static const sal_uInt16 aFontSizeMap[3] =
244*b1cdbd2cSJim Jagielski 		{ RES_CHRATR_FONTSIZE, RES_CHRATR_CJK_FONTSIZE,  RES_CHRATR_CTL_FONTSIZE };
245*b1cdbd2cSJim Jagielski 	static const sal_uInt16 aWeightMap[3] =
246*b1cdbd2cSJim Jagielski 		{ RES_CHRATR_WEIGHT, RES_CHRATR_CJK_WEIGHT,  RES_CHRATR_CTL_WEIGHT};
247*b1cdbd2cSJim Jagielski 	static const sal_uInt16 aPostureMap[3] =
248*b1cdbd2cSJim Jagielski 		{ RES_CHRATR_POSTURE, RES_CHRATR_CJK_POSTURE,  RES_CHRATR_CTL_POSTURE};
249*b1cdbd2cSJim Jagielski 
250*b1cdbd2cSJim Jagielski 	const sal_uInt16* pM;
251*b1cdbd2cSJim Jagielski 	switch( nWhich )
252*b1cdbd2cSJim Jagielski 	{
253*b1cdbd2cSJim Jagielski 	case RES_CHRATR_LANGUAGE:
254*b1cdbd2cSJim Jagielski 	case RES_CHRATR_CJK_LANGUAGE:
255*b1cdbd2cSJim Jagielski 	case RES_CHRATR_CTL_LANGUAGE:
256*b1cdbd2cSJim Jagielski 		pM = aLangMap;
257*b1cdbd2cSJim Jagielski 		break;
258*b1cdbd2cSJim Jagielski 
259*b1cdbd2cSJim Jagielski 	case RES_CHRATR_FONT:
260*b1cdbd2cSJim Jagielski 	case RES_CHRATR_CJK_FONT:
261*b1cdbd2cSJim Jagielski 	case RES_CHRATR_CTL_FONT:
262*b1cdbd2cSJim Jagielski 		pM = aFontMap;
263*b1cdbd2cSJim Jagielski 		break;
264*b1cdbd2cSJim Jagielski 
265*b1cdbd2cSJim Jagielski 	case RES_CHRATR_FONTSIZE:
266*b1cdbd2cSJim Jagielski 	case RES_CHRATR_CJK_FONTSIZE:
267*b1cdbd2cSJim Jagielski 	case RES_CHRATR_CTL_FONTSIZE:
268*b1cdbd2cSJim Jagielski 		pM = aFontSizeMap;
269*b1cdbd2cSJim Jagielski 		break;
270*b1cdbd2cSJim Jagielski 
271*b1cdbd2cSJim Jagielski 	case  RES_CHRATR_WEIGHT:
272*b1cdbd2cSJim Jagielski 	case  RES_CHRATR_CJK_WEIGHT:
273*b1cdbd2cSJim Jagielski 	case  RES_CHRATR_CTL_WEIGHT:
274*b1cdbd2cSJim Jagielski 		pM = aWeightMap;
275*b1cdbd2cSJim Jagielski 		break;
276*b1cdbd2cSJim Jagielski 	case RES_CHRATR_POSTURE:
277*b1cdbd2cSJim Jagielski 	case RES_CHRATR_CJK_POSTURE:
278*b1cdbd2cSJim Jagielski 	case RES_CHRATR_CTL_POSTURE:
279*b1cdbd2cSJim Jagielski 		pM = aPostureMap;
280*b1cdbd2cSJim Jagielski 		break;
281*b1cdbd2cSJim Jagielski 
282*b1cdbd2cSJim Jagielski 	default:
283*b1cdbd2cSJim Jagielski 		pM = 0;
284*b1cdbd2cSJim Jagielski 	}
285*b1cdbd2cSJim Jagielski 
286*b1cdbd2cSJim Jagielski 	sal_uInt16 nRet;
287*b1cdbd2cSJim Jagielski 	if( pM )
288*b1cdbd2cSJim Jagielski 	{
289*b1cdbd2cSJim Jagielski         using namespace ::com::sun::star::i18n;
290*b1cdbd2cSJim Jagielski 		{
291*b1cdbd2cSJim Jagielski 			if( ScriptType::WEAK == nScript )
292*b1cdbd2cSJim Jagielski                 nScript = GetI18NScriptTypeOfLanguage( (sal_uInt16)GetAppLanguage() );
293*b1cdbd2cSJim Jagielski 			switch( nScript)
294*b1cdbd2cSJim Jagielski 			{
295*b1cdbd2cSJim Jagielski 			case ScriptType::COMPLEX:	++pM;  // no break;
296*b1cdbd2cSJim Jagielski 			case ScriptType::ASIAN:		++pM;  // no break;
297*b1cdbd2cSJim Jagielski 			default:					nRet = *pM;
298*b1cdbd2cSJim Jagielski 			}
299*b1cdbd2cSJim Jagielski 		}
300*b1cdbd2cSJim Jagielski 	}
301*b1cdbd2cSJim Jagielski 	else
302*b1cdbd2cSJim Jagielski 		nRet = nWhich;
303*b1cdbd2cSJim Jagielski 	return nRet;
304*b1cdbd2cSJim Jagielski }
305