| /************************************************************** |
| * |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you under the Apache License, Version 2.0 (the |
| * "License"); you may not use this file except in compliance |
| * with the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the License. |
| * |
| *************************************************************/ |
| |
| |
| |
| // MARKER(update_precomp.py): autogen include statement, do not remove |
| #include "precompiled_sw.hxx" |
| #include <hints.hxx> |
| |
| #ifndef _COM_SUN_STAR_I18N_SCRIPTTYPE_HDL_ |
| #include <com/sun/star/i18n/ScriptType.hdl> |
| #endif |
| #include <editeng/scripttypeitem.hxx> |
| #include <hintids.hxx> |
| #include <swtypes.hxx> |
| #include <ndtxt.hxx> |
| #include <errhdl.hxx> |
| |
| SwFmtChg::SwFmtChg( SwFmt *pFmt ) |
| : SwMsgPoolItem( RES_FMT_CHG ), |
| pChangedFmt( pFmt ) |
| {} |
| |
| |
| |
| SwInsTxt::SwInsTxt( xub_StrLen nP, xub_StrLen nL ) |
| : SwMsgPoolItem( RES_INS_TXT ), |
| nPos( nP ), |
| nLen( nL ) |
| {} |
| |
| |
| |
| SwDelChr::SwDelChr( xub_StrLen nP ) |
| : SwMsgPoolItem( RES_DEL_CHR ), |
| nPos( nP ) |
| {} |
| |
| |
| |
| SwDelTxt::SwDelTxt( xub_StrLen nS, xub_StrLen nL ) |
| : SwMsgPoolItem( RES_DEL_TXT ), |
| nStart( nS ), |
| nLen( nL ) |
| {} |
| |
| |
| |
| SwUpdateAttr::SwUpdateAttr( xub_StrLen nS, xub_StrLen nE, sal_uInt16 nW ) |
| : SwMsgPoolItem( RES_UPDATE_ATTR ), |
| nStart( nS ), |
| nEnd( nE ), |
| nWhichAttr( nW ) |
| {} |
| |
| |
| // SwRefMarkFldUpdate wird verschickt, wenn sich die ReferenzMarkierungen |
| // Updaten sollen. Um Seiten-/KapitelNummer feststellen zu koennen, muss |
| // der akt. Frame befragt werden. Dafuer wird das akt. OutputDevice benoetigt. |
| |
| |
| SwRefMarkFldUpdate::SwRefMarkFldUpdate( const OutputDevice* pOutput ) |
| : SwMsgPoolItem( RES_REFMARKFLD_UPDATE ), |
| pOut( pOutput ) |
| { |
| ASSERT( pOut, "es muss ein OutputDevice-Pointer gesetzt werden!" ); |
| } |
| |
| |
| SwDocPosUpdate::SwDocPosUpdate( const SwTwips nDcPos ) |
| : SwMsgPoolItem( RES_DOCPOS_UPDATE ), |
| nDocPos(nDcPos) |
| {} |
| |
| |
| |
| // SwTableFmlUpdate wird verschickt, wenn sich die Tabelle neu berechnen soll |
| SwTableFmlUpdate::SwTableFmlUpdate( const SwTable* pNewTbl ) |
| : SwMsgPoolItem( RES_TABLEFML_UPDATE ), |
| pTbl( pNewTbl ), pHistory( 0 ), nSplitLine( USHRT_MAX ), |
| eFlags( TBL_CALC ) |
| { |
| DATA.pDelTbl = 0; |
| bModified = bBehindSplitLine = sal_False; |
| ASSERT( pTbl, "es muss ein Table-Pointer gesetzt werden!" ); |
| } |
| |
| |
| SwAutoFmtGetDocNode::SwAutoFmtGetDocNode( const SwNodes* pNds ) |
| : SwMsgPoolItem( RES_AUTOFMT_DOCNODE ), |
| pCntntNode( 0 ), pNodes( pNds ) |
| {} |
| |
| |
| SwAttrSetChg::SwAttrSetChg( const SwAttrSet& rTheSet, SwAttrSet& rSet ) |
| : SwMsgPoolItem( RES_ATTRSET_CHG ), |
| bDelSet( sal_False ), |
| pChgSet( &rSet ), |
| pTheChgdSet( &rTheSet ) |
| {} |
| |
| |
| SwAttrSetChg::SwAttrSetChg( const SwAttrSetChg& rChgSet ) |
| : SwMsgPoolItem( RES_ATTRSET_CHG ), |
| bDelSet( sal_True ), |
| pTheChgdSet( rChgSet.pTheChgdSet ) |
| { |
| pChgSet = new SwAttrSet( *rChgSet.pChgSet ); |
| } |
| |
| |
| SwAttrSetChg::~SwAttrSetChg() |
| { |
| if( bDelSet ) |
| delete pChgSet; |
| } |
| |
| |
| #ifdef DBG_UTIL |
| |
| void SwAttrSetChg::ClearItem( sal_uInt16 nWhch ) |
| { |
| ASSERT( bDelSet, "der Set darf nicht veraendert werden!" ); |
| pChgSet->ClearItem( nWhch ); |
| } |
| |
| #endif |
| |
| |
| SwMsgPoolItem::SwMsgPoolItem( sal_uInt16 nWhch ) |
| : SfxPoolItem( nWhch ) |
| {} |
| |
| |
| // "Overhead" vom SfxPoolItem |
| int SwMsgPoolItem::operator==( const SfxPoolItem& ) const |
| { |
| ASSERT( sal_False, "SwMsgPoolItem kennt kein ==" ); |
| return 0; |
| } |
| |
| |
| SfxPoolItem* SwMsgPoolItem::Clone( SfxItemPool* ) const |
| { |
| ASSERT( sal_False, "SwMsgPoolItem kennt kein Clone" ); |
| return 0; |
| } |
| |
| /****************************************************************************** |
| * hole aus der Default-Attribut Tabelle ueber den Which-Wert |
| * das entsprechende default Attribut. |
| * Ist keines vorhanden, returnt ein 0-Pointer !!! |
| * Used to be inlined (hintids.hxx) in PRODUCT. |
| ******************************************************************************/ |
| #ifndef DBG_UTIL |
| const SfxPoolItem* GetDfltAttr( sal_uInt16 nWhich ) |
| { |
| return aAttrTab[ nWhich - POOLATTR_BEGIN ]; |
| } |
| #else |
| const SfxPoolItem* GetDfltAttr( sal_uInt16 nWhich ) |
| { |
| ASSERT_ID( nWhich < POOLATTR_END && nWhich >= POOLATTR_BEGIN, |
| ERR_OUTOFSCOPE ); |
| |
| SfxPoolItem *pHt = aAttrTab[ nWhich - POOLATTR_BEGIN ]; |
| ASSERT( pHt, "GetDfltFmtAttr(): Dflt == 0" ); |
| return pHt; |
| } |
| #endif |
| |
| |
| |
| SwCondCollCondChg::SwCondCollCondChg( SwFmt *pFmt ) |
| : SwMsgPoolItem( RES_CONDCOLL_CONDCHG ), pChangedFmt( pFmt ) |
| { |
| } |
| |
| |
| SwVirtPageNumInfo::SwVirtPageNumInfo( const SwPageFrm *pPg ) : |
| SwMsgPoolItem( RES_VIRTPAGENUM_INFO ), |
| pPage( 0 ), |
| pOrigPage( pPg ), |
| pFrm( 0 ) |
| { |
| } |
| |
| // --> OD 2008-02-19 #refactorlists# |
| //SwNumRuleInfo::SwNumRuleInfo( const String& rRuleName ) |
| // : SwMsgPoolItem( RES_GETNUMNODES ), rName( rRuleName ) |
| //{ |
| //} |
| |
| //void SwNumRuleInfo::AddNode( SwTxtNode& rNd ) |
| //{ |
| // aList.Insert(rNd.GetIndex(), &rNd); |
| //} |
| |
| |
| SwFindNearestNode::SwFindNearestNode( const SwNode& rNd ) |
| : SwMsgPoolItem( RES_FINDNEARESTNODE ), pNd( &rNd ), pFnd( 0 ) |
| { |
| } |
| |
| void SwFindNearestNode::CheckNode( const SwNode& rNd ) |
| { |
| if( &pNd->GetNodes() == &rNd.GetNodes() ) |
| { |
| sal_uLong nIdx = rNd.GetIndex(); |
| if( nIdx < pNd->GetIndex() && |
| ( !pFnd || nIdx > pFnd->GetIndex() ) && |
| nIdx > rNd.GetNodes().GetEndOfExtras().GetIndex() ) |
| pFnd = &rNd; |
| } |
| } |
| |
| |
| |
| sal_uInt16 GetWhichOfScript( sal_uInt16 nWhich, sal_uInt16 nScript ) |
| { |
| static const sal_uInt16 aLangMap[3] = |
| { RES_CHRATR_LANGUAGE, RES_CHRATR_CJK_LANGUAGE, RES_CHRATR_CTL_LANGUAGE }; |
| static const sal_uInt16 aFontMap[3] = |
| { RES_CHRATR_FONT, RES_CHRATR_CJK_FONT, RES_CHRATR_CTL_FONT}; |
| static const sal_uInt16 aFontSizeMap[3] = |
| { RES_CHRATR_FONTSIZE, RES_CHRATR_CJK_FONTSIZE, RES_CHRATR_CTL_FONTSIZE }; |
| static const sal_uInt16 aWeightMap[3] = |
| { RES_CHRATR_WEIGHT, RES_CHRATR_CJK_WEIGHT, RES_CHRATR_CTL_WEIGHT}; |
| static const sal_uInt16 aPostureMap[3] = |
| { RES_CHRATR_POSTURE, RES_CHRATR_CJK_POSTURE, RES_CHRATR_CTL_POSTURE}; |
| |
| const sal_uInt16* pM; |
| switch( nWhich ) |
| { |
| case RES_CHRATR_LANGUAGE: |
| case RES_CHRATR_CJK_LANGUAGE: |
| case RES_CHRATR_CTL_LANGUAGE: |
| pM = aLangMap; |
| break; |
| |
| case RES_CHRATR_FONT: |
| case RES_CHRATR_CJK_FONT: |
| case RES_CHRATR_CTL_FONT: |
| pM = aFontMap; |
| break; |
| |
| case RES_CHRATR_FONTSIZE: |
| case RES_CHRATR_CJK_FONTSIZE: |
| case RES_CHRATR_CTL_FONTSIZE: |
| pM = aFontSizeMap; |
| break; |
| |
| case RES_CHRATR_WEIGHT: |
| case RES_CHRATR_CJK_WEIGHT: |
| case RES_CHRATR_CTL_WEIGHT: |
| pM = aWeightMap; |
| break; |
| case RES_CHRATR_POSTURE: |
| case RES_CHRATR_CJK_POSTURE: |
| case RES_CHRATR_CTL_POSTURE: |
| pM = aPostureMap; |
| break; |
| |
| default: |
| pM = 0; |
| } |
| |
| sal_uInt16 nRet; |
| if( pM ) |
| { |
| using namespace ::com::sun::star::i18n; |
| { |
| if( ScriptType::WEAK == nScript ) |
| nScript = GetI18NScriptTypeOfLanguage( (sal_uInt16)GetAppLanguage() ); |
| switch( nScript) |
| { |
| case ScriptType::COMPLEX: ++pM; // no break; |
| case ScriptType::ASIAN: ++pM; // no break; |
| default: nRet = *pM; |
| } |
| } |
| } |
| else |
| nRet = nWhich; |
| return nRet; |
| } |